“#N / A”的值和变体types?

我试图找出#N/A在VBA中代表什么。

我到目前为止是这个Application.WorksheetFunction.IsNA

我试图在我的macros应用它,但它不工作。

我想要做的是一个if语句的条件,find#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)程序/macros在遇到#N #N/A值时停止。

看起来你正在使用错误的function。 有关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 

除非要testing特定的错误types,否则更简单的方法是使用IsError:

 If IsError(ActiveSheet.Range("C" & MyCell.Row).Value) then 

xlErrNA #N/A由设置为值为xlErrNA的错误types的variantbuild模。

ActiveSheet.Range("C" & MyCell.Row).Value = CVErr(xlErrNA)将工作。

您可能需要先检查左侧的types,以避免一般情况下的types不匹配。

If VarType(ActiveSheet.Range("C" & MyCell.Row).Value) = vbError Then