我试图找出#N/A
在VBA中的含义。
到目前为止我得到的是Application.WorksheetFunction.IsNA
我尝试在我的宏上应用它,但它无效。
我尝试制作的是if语句,其条件是找到#N/A
值的单元格。
我想做的是这样的:
Dim MyCell As Range
For Each MyCell In ActiveSheet.Range("A1:A10")
If ActiveSheet.Range("C" & MyCell.Row).Value = Application.WorksheetFunction.IsNA Then
'do something
End If
Next
但问题是,(1)它不起作用,(2)程序/宏在遇到#N/A
值时停止。
答案 0 :(得分:2)
除非您想测试特定的错误类型,否则更简单的方法是使用IsError:
If IsError(ActiveSheet.Range("C" & MyCell.Row).Value) then
答案 1 :(得分:1)
看起来你正在使用错误的功能。 See here了解有关ISNA的更多信息。
而是尝试:
Dim MyCell As Range
For Each MyCell In ActiveSheet.Range("A1:A10")
If Application.WorksheetFunction.IsNA(ActiveSheet.Range("C" & MyCell.Row)) = True Then
'do something
End If
Next
答案 2 :(得分:0)
#N/A
由variant
设置为值为xlErrNA
的错误类型建模。
ActiveSheet.Range("C" & MyCell.Row).Value = CVErr(xlErrNA)
将有效。
您可能需要先检查左侧的类型,以避免在一般情况下出现类型不匹配。
If VarType(ActiveSheet.Range("C" & MyCell.Row).Value) = vbError Then