Вот еще один способ, надеясь, что работа с памятью будет быстрее, чем Range
объект, который я добавил дополнительно Transpose
для возврата 1D-массивов (с динамикой c Range
):
Sub Test()
Dim arr1 As Variant, arr2 As Variant
Dim lr As Long, dptNM As Variant
With Sheet1 'Change accordingly
'Get last used row
lr = .Cells(.Rows.Count, 1).End(xlUp).Row
'Get your 1D-arrays
arr1 = Application.Transpose(.Range("A1:A" & lr).Value)
arr2 = Application.Transpose(.Range("B1:B" & lr).Value)
'Get your match
With Application
dptNM = .IfError(.Index(arr2, .Match(106, arr1, 0)), "No Result Found")
End With
End With
End Sub
Однако вы также можете выбрать go немедленно через Range
объект, который может выглядеть следующим образом:
Sub Test()
Dim dptNM As Variant
Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Sheet1") 'Change accordingly
With Application
dptNM = .IfError(.Index(ws.Range("B1:B88"), .Match(106, ws.Range("A1:A88"), 0)), "No Result Found")
End With
End Sub