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

时间:2011-02-28 14:43:16

标签: excel vba

我正在迭代一系列包含2位小数的单元格。我需要检查单元格是否保持'#N / A',如果是,我需要跳过它。问题是,当一个单元格保存有效数字时,我的if条件会抛出“类型不匹配错误”。我怎么能避免这个?

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

1 个答案:

答案 0 :(得分:13)

首先检查错误(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