代码中没有结果时,VBA自动过滤器出现错误

时间:2019-06-03 09:32:48

标签: vba autofilter

我有以下代码,尝试运行“找不到单元格”时出现错误。

这是因为有时过滤后我没有结果。

Worksheets("DATA").Activate
Worksheets("DATA").AutoFilterMode = False
If Not ActiveSheet.AutoFilterMode Then
ActiveSheet.Range("A1").AutoFilter
End If


Selection.AutoFilter Field:=95, Criteria1:=Array("ABC", "DEF", "GHI"), Operator:=xlFilterValues


ActiveSheet.Range("2:" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Select
Selection.Delete Shift:=xlUp
Selection.AutoFilter

如果自动过滤器未返回任何结果,我希望有一个代码告诉您忽略该代码。

任何想法该怎么做?谢谢!

2 个答案:

答案 0 :(得分:0)

这可以做到:

Worksheets("DATA").Activate
Worksheets("DATA").AutoFilterMode = False
If Not ActiveSheet.AutoFilterMode Then
ActiveSheet.Range("A1").AutoFilter
End If


Selection.AutoFilter Field:=95, Criteria1:=Array("ABC", "DEF", "GHI"), Operator:=xlFilterValues

If ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Rows.Count > 1 Then

ActiveSheet.Range("2:" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Select
Selection.Delete Shift:=xlUp
Selection.AutoFilter

End If

答案 1 :(得分:0)

您可以忽略该错误:

Worksheets("DATA").Activate
Worksheets("DATA").AutoFilterMode = False
If Not ActiveSheet.AutoFilterMode Then
ActiveSheet.Range("A1").AutoFilter
End If

Selection.AutoFilter Field:=95, Criteria1:=Array("ABC", "DEF", "GHI"), Operator:=xlFilterValues

On Error Resume Next

ActiveSheet.Range("2:" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Select
Selection.Delete Shift:=xlUp
Selection.AutoFilter

On Error GoTo 0