Это моя функция:
Function stageValueVariance(stage As String, valCol As Long)
For i = 2 To offlineHeight
If Application.VLookup(offline.ListColumns(1).Range(i).value, bce.DataBodyRange, valCol, 0) <> offline.ListColumns(valCol).Range(i).value Then
foundID = Application.WorksheetFunction.Match(offline.ListColumns(1).Range(i), oldOut.ListColumns(1).DataBodyRange, 0)
If foundID = 0 Then
foundID = Application.WorksheetFunction.Match(offline.ListColumns(1).Range(i), valComp.ListColumns(1).DataBodyRange, 0)
End If
If foundID = 0 Then
With stageValComp.ListRows.Add
.Range(1) = offline.ListColumns(1).Range(i)
.Range(2) = offline.ListColumns(2).Range(i)
.Range(3) = stage
.Range(4) = offline.ListColumns(7).Range(i)
.Range(5) = Application.VLookup(offline.ListColumns(1).Range(i).value, bce.DataBodyRange, valCol, 0)
.Range(6).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="Yes, No"
End With
End If
foundID = 0
End If
Next i
End Function
Я получаю сообщение об ошибке «Недопустимый вызов процедуры или аргумент» в этой строке:
foundID = Application.WorksheetFunction.Match(offline.ListColumns(1).Range(i), oldOut.ListColumns(1).DataBodyRange, 0)
Если это полезно, эта строка Код проверяет, что ID еще не существует в другой таблице, поэтому offline
и oldOut
объявлены как ListObjects в верхней части модуля.
Я никогда раньше не сталкивался с этой ошибкой, и не могу найти много информации в Интернете. Есть идеи?