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

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

如果说错了,我觉得我正在设置这个。 我也尝试了“#N / A”并得到了同样的失败。 任何指导?

错误types不能与string/数字types进行比较,因为它们是两种不同types的数据。

首先,你需要检查错误:

 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将testing任何错误值,而您的= xlErrNA 检查特定错误: = xlErrNA #N/A CVErr函数将枚举常量xlErrNA (长/数值)转换为错误types。

您可能需要为其他错误types#REF!" #Name!等等添加其他条件,或者您可以简单地省略If Cells(i, 4). Value = xlErrNA ,然后这将处理任何错误值。

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

您可以使用IsError函数来检查单元是否包含像这样的错误:

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