Код ниже, кажется, работает.Обратите внимание, что Split должен заполнить массив String.Возможная причина, по которой VLOOKUP не работал, состоит в том, что ключи поиска являются строками и, возможно, значения в диапазоне были числовыми?Код ниже пытается оба.
Public Function SeqVlookup(ByVal target As String, vrange As Range, vcol As Long) As Variant
Dim WrdArray() As String
Dim vlookupArray() As Variant
WrdArray = Split(target, ",")
ReDim vlookupArray(LBound(WrdArray) To UBound(WrdArray))
Dim i As Long
On Error Resume Next
For i = LBound(WrdArray) To UBound(WrdArray)
vlookupArray(i) = WorksheetFunction.VLookup(WrdArray(i), vrange, vcol, False)
If IsEmpty(vlookupArray(i)) Then
If IsNumeric(WrdArray(i)) Then
vlookupArray(i) = WorksheetFunction.VLookup(CLng(WrdArray(i)), vrange, vcol, False)
End If
End If
Next i
On Error GoTo 0
SeqVlookup = Join(vlookupArray, ",")
MsgBox Join(vlookupArray, ",")
End Function