У вас есть несколько вопросов
- Вы должны ссылаться на диапазон как
Range("A:A")
, а не "A:A"
- Если вы используете
VLOOKUP
вместо LOOKUP
, то, как указано, вы должны ссылаться на диапазон из четырех столбцов, Range("A:D")
- Вам нужно обработать тестовое значение, которое не найдено в A
Пример кода ниже для адаптации
Dim strLookfor as String
Dim strOut
strLookfor = "test"
strOut = Application.VLookup(strLookfor, Range("A:D"), 4, True)
If IsError(strOut) Then
MsgBox "value not found"
Else
'return column D value as string
MsgBox CStr(strOut)
End If
Последующий
Да, вы можете использовать
`strOut = Application.VLookup(strLookfor & "*", Range("A:D"), 4, True)`
для этого матча
бу я думаю Find
чище, т.е.
Dim strLookfor As String
strLookfor = "F71"
Dim rng1 As Range
Set rng1 = Sheets("Sheet1").Columns("A").Find(strfolder & "*", , xlValues, xlPart)
If Not rng1 Is Nothing Then
MsgBox "Match in " & rng1.Offset(0, 3)
Else
MsgBox strfolder & "*" & vbNewLine & "not found"
End If