价值和变体类型" #N / A"?

时间:2015-06-02 09:24:59

标签: excel vba

我试图找出#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值时停止。

3 个答案:

答案 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/Avariant设置为值为xlErrNA的错误类型建模。

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

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

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