我正在迭代一系列包含2位小数的单元格。我需要检查单元格是否保持'#N / A',如果是,我需要跳过它。问题是,当一个单元格保存有效数字时,我的if条件会抛出“类型不匹配错误”。我怎么能避免这个?
If (ActiveWorkbook.Sheets("Publish").Range("G4").offset(offsetCount, 0).Value <> CVErr(xlErrNA)) Then
'do something
End If
答案 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