Excel自动筛选错误



我正在尝试使用下面的代码对任何具有#div/0的单元格进行自动筛选,但它一直返回"某些其他错误",即使A列中存在上述错误。

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 = ...语句,然后在Locals窗口中检查R的属性。

第二,在解释Else / Debug.Print分支时,您只查找包含任何错误的单元格。对于不包含任何错误的单元格,也将执行Else分支。因此,您的Else分支应连接到内部If

最后,不能提供错误值作为.Autofilter的参数。。。而是使用字符串CCD_ 10。

嘲笑这一切。。。

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. 检测到#DIV/0!设置自动筛选器时出错
  2. 在检测到任何其他错误时,将发出debug.print
  3. 否则什么都不会发生

在1,2的情况下,循环立即终止-不再检查

最新更新