人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【エクセルVBA】についての質問です。

以下のコードで、検索値(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



よろしくお願いします。
コード自体にこだわり無いので、同じ処理で別の方法があればそれでも良いです。


●質問者: pocon
●カテゴリ:コンピュータ
✍キーワード:AS B4 D2 D4 EXIT
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● jccrh1
●60ポイント ベストアンサー

見つかったか、見つからなかったかの変数を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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ