前提・実現したいこと
テキストボックスに文字を入力してコマンドボタンを押すと
テキストボックスに入力した文字を検索して
その値と一致したセルの2個下のセルに対して
Sheet1のB14:B35の値をコピーして貼り付けたいです。
検索する範囲は
アクティブセルのC4:Z4,C41:Z41,C78:Z78・・・とStep37で189まで検索します。
テキストボックスが空欄時は、("入力されていません")と出力
検索した値が見つからなかったときは、"見つかりません。"と出力
該当のソースコード
Private Sub 出力_Click() Dim Yearmonth As String Dim FoundCell As Range Dim i As Long Yearmonth = frm売上出力.TextBox1.Text If frm売上出力.TextBox1.Value = "" Then MsgBox ("入力されていません") Else For i = 4 To 189 Step 37 Set FoundCell = Range("(C,i):(Z,i)").Find(What:=Yearmonth, After:=ActiveCell, _ LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False, _ MatchByte:=False) If FoundCell Is Nothing Then MsgBox "見つかりません。" Else Sheets("Sheet1").Range("B14:B35").Copy FoundCell.Offset(2, 0) End If Next End If End Sub
発生している問題・エラーメッセージ
テキストボックスに入力して、コマンドボタンを押すと、
Rangeメソッドは失敗しました:Globalオブジェクト
と表示されます。
デバッグを押すと、
Set FoundCell = Range("(C,i):(Z,i)").Find(What:=Yearmonth, After:=ActiveCell, _ LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False, _ MatchByte:=False)
がだめだと返ってきます。
Findの中は、いろいろ調べてみてもあっているような気がするんですが、、
Else IF もしくは For Next がおかしい可能性もあるんでしょうか?
初心者で文法そもそもがまちっがているかもしれません(´;ω;`)
ご教授おねがいできますでしょうか。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/11 08:05