Excel 自动过滤器错误
Excel autofilter errors
我正在尝试使用下面的代码对任何带有#DIV/0 的单元格进行自动过滤,但是它一直返回 "Some Other Error",即使 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 = ...
语句,然后检查Localswindow.[=21=中R
的属性]
其次 - 解释您的 Else / Debug.Print
分支,您只查找包含 任何错误 的单元格。您的 Else
分支也将针对包含任何错误的 not 单元格执行。所以你的 Else
分支应该附加到 inner 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
所以这里
- 检测到 #DIV/0!设置自动过滤器时出错
- 在检测到任何其他错误时发出 debug.print
- 否则什么也不会发生
在 1,2 的情况下,循环立即终止 - 无需进一步检查
我正在尝试使用下面的代码对任何带有#DIV/0 的单元格进行自动过滤,但是它一直返回 "Some Other Error",即使 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 = ...
语句,然后检查Localswindow.[=21=中R
的属性]
其次 - 解释您的 Else / Debug.Print
分支,您只查找包含 任何错误 的单元格。您的 Else
分支也将针对包含任何错误的 not 单元格执行。所以你的 Else
分支应该附加到 inner 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
所以这里
- 检测到 #DIV/0!设置自动过滤器时出错
- 在检测到任何其他错误时发出 debug.print
- 否则什么也不会发生
在 1,2 的情况下,循环立即终止 - 无需进一步检查