检查vba中的“#N / A”值到一个范围内
我想检查一个#N/A
值与VBA的excel。 所以经过一番研究,我做了这个代码:
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)
,我不明白为什么。
任何人都可以帮我吗?
您首先需要检查单元是否包含错误:
If IsError(MyTab(i, j).Value) Then If MyTab(i, j).Value <> CVErr(xlErrNA) Then
除非你想知道错误types(#N / A,#DIV / 0 !,等等),否则你可以用下面的代码replace你的testing:
If (Not IsEmpty(MyTab.value)) And (Not IsError(MyTab(i, j).value)) Then
如果你需要检查错误types,你可以写:
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
另一种检查错误的方法
If CVErr(MyTab(i, j).Value) = CVErr(xlErrNA)