|
ギン さん、こんばんわ。
>検索値自体が違っていました。
>このように違う検索値がある場合の回避はどのようにしたら宜しいでしょうか?
On Error で分岐するか、CountIfでチェックしてエラーを回避するか...。
CountIfで回避してみましょう。
Sub test()
'↓ためし用
r = 5
rEnd = 10
'
For n = r To rEnd 'rは最初の行でrEndは最後の行です。
If Application.WorksheetFunction.CountIf(Worksheets("区分") _
.Range("A2:A700"), Cells(n, 2).Value) = 0 Then
'なかった
Cells(n, 1).Value = "#N/A"
Else
'あった
Cells(n, 1).Value = Application.WorksheetFunction.VLookup( _
Cells(n, 2), Worksheets("区分").Range("A2:AZ700"), 2, 0)
End If
Next n
End Sub
ところで、VLOOKUPでないとだめですか?
Sub test()
Dim r1 As Range
'↓ためし用
r = 5
rEnd = 10
'チェックするのはB列,検索結果を入れるのはA列だとして
For n = r To rEnd 'rは最初の行でrEndは最後の行です。
'B列の内容を完全一致で検索
On Error Resume Next
Set r1 = Worksheets("区分").Range("A2:AZ700").Find( _
what:=Cells(n, 2).Value, LookAt:=xlWhole)
On Error GoTo 0
'結果分岐(結果はA列)
With ActiveSheet.Cells(n, 1)
If r1 Is Nothing Then
.Value = "#N/A"
Else
.Value = r1.Offset(0, 1).Value 'B列から取得
End If
End With
Set r1 = Nothing '開放
Next n
End Sub
こんな感じです。
|
|