У меня есть функция vba, которая получает строку из рабочей книги и просматривает данные в столбцах набора данных, устанавливает переменные или нет в зависимости от того, что найдено.Для строк 2-16 все работает нормально;пустые клетки пропускаются.Внезапно в строке 17 ячейка, которая кажется пустой, запускает первое условие if.
Я попытался добавить дополнительную проверку для ячеек, содержащих пустую строку, а в самом листе я проверил CODE(H17)
, которыйбыл #VALUE
Function calcID(r As Long) As Variant
If (Not IsEmpty(allProps.Cells(r, 8))) Or (Not allProps.Cells(r, 8).Value = "") Then
MsgBox "Found ID: " & allProps.Cells(r, 8).Value & " in allProps row " & r
calcID = CDate(allProps.Cells(r, 8).Value)
ElseIf Not IsEmpty(allProps.Cells(r, 9)) Or Not allProps.Cells(r, 9).Value = "" Then
MsgBox "Found reverse ID: " & allProps.Cells(r, 9).Value & " in allProps row " & r
calcID = CDate(allProps.Cells(r, 9).Value)
Else
calcID = ""
End If
End Function
Я использую CDate в другом месте, и он отлично работает.В конечном итоге ошибка появляется, когда я нахожусь внутри if
, потому что я думаю, что у CDate нет строки для работы.