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

我正在遍历一系列的小数位数为2的数字。 我需要检查单元格是否包含'#N / A',如果是,我需要跳过它。 问题是,当一个单元格拥有一个有效的数字时,我的if条件将抛出一个'types不匹配错误'。 我怎样才能避免这一点?

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

首先检查错误(N / A值),然后尝试与cvErr()进行比较。 你正在比较两个不同的东西,一个值和一个错误。 这可能工作,但并不总是。 简单地将expression式转换为错误可能会导致类似的问题,因为它不是一个真正的错误,只有依赖于expression式的错误的值。

 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