Проверка #N/A в ячейке Excel из кода VBA
Я перебираю диапазон ячеек,которые содержат числа с 2 десятичными знаками. Мне нужно проверить, содержит ли ячейка "#N/A", и если да, мне нужно пропустить ее. Проблема в том, что когда ячейка содержит допустимое число, мое условие if ниже выдает "ошибку несоответствия типа". Как мне этого избежать?
If (ActiveWorkbook.Sheets("Publish").Range("G4").offset(offsetCount, 0).Value <> CVErr(xlErrNA)) Then
'do something
End If
1 ответов
сначала проверьте наличие ошибки (значение N/A), а затем попробуйте сравнить с cvErr (). Вы сравниваете две разные вещи: ценность и ошибку. Это может сработать, но не всегда. Простое приведение выражения к ошибке может привести к аналогичным проблемам, потому что это не настоящая ошибка, а только значение ошибки, которое зависит от выражения.
If IsError(ActiveWorkbook.Sheets("Publish").Range("G4").offset(offsetCount, 0).Value) Then
If (ActiveWorkbook.Sheets("Publish").Range("G4").offset(offsetCount, 0).Value <> CVErr(xlErrNA)) Then
'do something
End If
End If