Если вы уроните WorksheetFunction
, вы можете проверить возвращаемое значение Vlookup, используя IsError()
. Если вы включите WorksheetFunction, вы получите ошибку времени выполнения в случае, если Vlookup не найдет совпадение.
Function Waves(BN() As Integer, Table As Range, Wave() As String, _
wsName As String, numRows As Integer)
Dim i As Integer, v, ws As Worksheet
Set ws = ThisWorkbook.Worksheets(wsName)
Set Table = ThisWorkbook.Worksheets("Cleaned Input").Range("Table2")
For i = 0 To numRows
BN(i) = ws.Range("A" & i + 2) 'change 5k to a string variable
v = Application.VLookup(BN(i), Table, 13, False)
If IsError(v) Then v = "No Match"
Wave(i) = v
ws.Range("F" & i + 2) = v
Next
End Function
Кстати, это действительно должно быть Sub, поскольку оно не возвращает значение напрямую.