检查单元格是否有错误时键入不匹配

时间:2014-10-08 15:19:26

标签: excel vba excel-vba

    If Cells(i, 4).Value = xlErrNA Then
        MsgBox ("Error on row " & i)
        Exit Sub
    End If

我想我设置这个if语句错了。我也试过#34;#N / A"并得到了同样的失败。任何指导?

2 个答案:

答案 0 :(得分:4)

错误类型无法与字符串/数字类型进行比较,因为它们是两种不同的类型数据。

首先,您需要检查错误:

If IsError(Cells(i, 4).Value) Then
    If Cells(i, 4). Value = CVErr(xlErrNA) Then
        MsgBox ("Error on row " & i)
        Exit Sub
    End If
End If

请注意,IsError将测试任何错误值,而= xlErrNA 检查特定错误:{{1} }。 #N/A函数将枚举常量CVErr(长/数值)转换为其等效的错误类型。

您可能需要为其他错误类型xlErrNA #REF!"等添加其他条件,或者您可以省略#Name!然后这将处理任何错误值。

If Cells(i, 4). Value = xlErrNA

答案 1 :(得分:1)

您可以使用IsError函数检查单元格是否包含如下错误:

If IsError(Cells(i, 4).Value) Then
    MsgBox ("Error on row " & i)
    Exit Sub
End If