我想用VBA检查excel中的#N/A
值。经过一些研究,我制作了这段代码:
Set MyTab = Range(name)
If (Not IsEmpty(MyTab.value)) And (MyTab(i, j).value <> CVErr(xlErrNA)) Then
Call BuildRequest(False, id, MyTab, i, j)
End If
但是当它传递给MyTab(i, j).value <> CVErr(xlErrNA)
时,我发现了一个错误13(type error)
而且我找不到原因。
任何人都可以帮助我吗?
答案 0 :(得分:10)
首先需要检查单元格是否包含错误:
If IsError(MyTab(i, j).Value) Then
If MyTab(i, j).Value <> CVErr(xlErrNA) Then
除非您确实想知道错误的类型(#N / A,#DIV / 0!等),否则您也可以用以下内容替换您的测试:
If (Not IsEmpty(MyTab.value)) And (Not IsError(MyTab(i, j).value)) Then
如果您需要检查错误类型,可以写:
Dim shouldBuildRequest As Boolean
shouldBuildRequest = Not IsEmpty(MyTab.value)
If IsError(MyTab(i, j).Value) Then
shouldBuildRequest = shouldBuildRequest AND (MyTab(i, j).Value <> CVErr(xlErrNA))
End If
If shouldBuildRequest Then
Call BuildRequest(False, id, MyTab, i, j)
End If
答案 1 :(得分:6)
检查错误的另一种方法
If CVErr(MyTab(i, j).Value) = CVErr(xlErrNA)