我正在尝试使用下面的代码在任何使用#DIV / 0的单元格上进行自动过滤,但是即使A列中存在上述错误,它也会不断返回“ Some Other Error”。
Sub asdf2()
Dim R As Range
Set R = Range("A:A")
If IsError(R.Value) = True Then
If R.Value = CVErr(xlErrDiv0) Then
With R
.AutoFilter field:=1, Criteria1:=R.Value
End With
End If
Else
Debug.Print "Some other error"
End If
End Sub
正如R
跨整个列的多单元格范围一样,没有.Value
属性。
调试,直到执行该Set R = ...
语句,然后R
在“本地”窗口中检查的属性。
其次,在解释您的Else / Debug.Print
分支时,您只在寻找包含任何error的单元格。您的Else
分支也将针对不包含任何错误的单元格执行。因此,您的Else
分支应该附加到内部 If
最后,您不能提供错误值作为...的参数,而应.Autofilter
使用字符串Criteria1:="#DIV/0!"
代替。
模拟所有这些...
Sub asdf2()
Dim R As Range, C As Range
Set R = Range("A:A")
For Each C In R.Cells
Debug.Print C.Value
If IsError(C.Value) = True Then
If C.Value = CVErr(xlErrDiv0) Then
With R
.AutoFilter field:=1, Criteria1:="#DIV/0!"
End With
Else
Debug.Print "Other Error"
End If
Exit For
End If
Next C
End Sub
所以在这里
如果为1,2,则循环立即终止-无需进一步检查
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句