Я пытаюсь закодировать vlookup с помощью WorksheetFunction для выполнения обычного vlookup в Excel (динамическая ячейка, которую нужно искать, и динамические ячейки для ввода результатов).
Sub vlookupFunction()
Dim cl As Range
Dim searchManagersRange As Range
Dim rangeToSearchManagers As Range
Dim lastRow As Long
lastRow = ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Set rangeToSearchManagers = ThisWorkbook.Sheets(1).Range("A2:A" & lastRow)
Set searchManagersRange = ThisWorkbook.Sheets(3).UsedRange
For Each cl In rangeToSearchManagers
On Error GoTo managerNotFound
ThisWorkbook.Sheets(1).Range(cl.Offset(0, 16).Address) = WorksheetFunction.VLookup(cl, searchManagersRange, 2, 0)
Next cl
managerNotFound:
cl.Offset(0, 16).Value = "#N/A"
Resume Next
End Sub
Код работает нормально и завершает поиск, но в конце он возвращает переменную объекта not set ... error, поскольку cl в конце означает "Nothing".