Когда я звоню Application.Match()
из Немедленного Окна, это работает. Из модуля в VBA он возвращает ошибку «91 Obj Var или с блоком не установлен».
Я попробовал сопоставить с листа, работает нормально. Я попытался изменить аргумент «массив» на «категория» (именованный диапазон, область действия рабочей книги), «errCodes! B25: B295», диапазон («категория»), диапазон («errCodes! B25: B295») ... Я посмотрел на другие ошибки 91, и они не соответствуют друг другу.
Function findCD(prevRng As Range)
Dim oldCDrng As Range
Dim i As Integer
Dim nextCD As Integer
Dim oldC, oldD, newC, newD, oldCD, newCD As String
On Error GoTo err_hand
'Argument is always above cell
'1 find prev cell value
oldCD = WorksheetFunction.Index(prevRng, 0)
oldC = Mid(oldCD, 1, 1)
oldD = Mid(oldCD, 2, 1)
'2 find next C & D where different
'find current CD
oldCDrng = Application.Match("02", Range("category"), 0)
'next CD is at least CD + 1
'verify this
nextCD = oldCD + 1
nextCDrng = Application.Match(nextCD, Range("errorCodes!D22:D295"), 0)
'3 return this value
Exit Function
err_hand:
findCD = "ERROR!" & Err.Number & " (" & Err.Description & ")"
End Function