从VBA代码检查Excel单元格中的#N / A

Checking for #N/A in Excel cell from VBA code

我正在遍历包含2个小数位数字的单元格范围。 我需要检查单元格是否包含"#N / A",如果确实存在,则需要跳过它。 问题是,当一个单元格保存有效数字时,我的以下if条件会引发"类型不匹配错误"。 如何避免这种情况?

1
2
3
If (ActiveWorkbook.Sheets("Publish").Range("G4").offset(offsetCount, 0).Value <> CVErr(xlErrNA)) Then
'do something
End If


首先检查错误(N / A值),然后尝试与cvErr()比较。 您正在比较两个不同的东西,一个值和一个错误。 这可能有效,但并非总是如此。 简单地将表达式转换为错误可能会导致类似的问题,因为它不是真正的错误,而只是取决于表达式的错误值。

1
2
3
4
5
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