首页 > 解决方案 > 删除自动过滤器中的可见行 - 跳过空过滤器结果

问题描述

我目前有一个宏通过自动过滤器中的多个条件并删除可见行。这似乎运作良好,直到没有符合条件的行并且它给我一个错误。

我尝试使用下面的“if”函数,但即使自动过滤器下没有结果,它似乎也不会跳到“End If”,并且 LstRw 将为 1。

我用'if'函数做错了什么,还是我使用'LstRw'(Range)的方式?

With S1
    LstRw = .Cells(.Rows.Count, "A").End(xlUp).Row
    .Range("$A$1:$G" & LstRw).AutoFilter Field:=5, Criteria1:="<" & Format(DatePast, "mm/dd/yyyy")
    .Range("$A$1:$G" & LstRw).AutoFilter Field:=3, Criteria1:=Array("ZD", "="), Operator:=xlFilterValues
    If LstRw > 1 Then
        Set rng = .Range("A2:A" & LstRw).SpecialCells(xlCellTypeVisible)
        rng.EntireRow.Delete
    End If
    .ShowAllData
End With

标签: excelvbarowsdelete-rowautofilter

解决方案


推荐阅读