以下のコードで、検索値(Range("T4").Value)見つからなかった場合の処理を追加したいです。
別のワークシート(変数:WS)の表(A4:F240)内B4:B240に検索するデータがあったら任意のVALUE値を書き込むというものです。
Dim Obj AS Object
Dim WS AS Worksheet
For Each Obj In WS.Range("B4:B240")
If Obj.Value Like Range("T4") Then
If WS.Cells(Obj.Row, 4).Value <> "" Then
MsgBox "既に登録されています"
Exit Sub
End If
WS.Cells(Obj.Row, 4).Value = Range("D2").Value
WS.Cells(Obj.Row, 5).Value = Range("D4").Value
WS.Cells(Obj.Row, 6).Value = Now
End If
Next Obj
よろしくお願いします。
コード自体にこだわり無いので、同じ処理で別の方法があればそれでも良いです。
見つかったか、見つからなかったかの変数を1つ用意すれば良いと思います。
例としてMatch という変数を使用しました。
Dim Obj As Object Dim WS As Worksheet Dim Match As Boolean ' True:Match False:UnMatch For Each Obj In WS.Range("B4:B240") If Obj.Value Like Range("T4") Then Match = True If WS.Cells(Obj.Row, 4).Value <> "" Then MsgBox "既に登録されています" Exit Sub End If WS.Cells(Obj.Row, 4).Value = Range("D2").Value WS.Cells(Obj.Row, 5).Value = Range("D4").Value WS.Cells(Obj.Row, 6).Value = Now End If Next Obj If Match Then Exit Sub ' UnMatch処理 MsgBox "該当セルが見つかりません"
ほー、なるほどです。
頂戴します。m(__)m