删除自动过滤器中的可见行-跳过空的过滤器结果

时间:2020-04-30 01:09:18

标签: excel vba rows delete-row autofilter

我目前有一个宏,该宏在自动过滤器中经历多个条件并删除可见行。 似乎没有问题,直到没有符合条件的行,这给我一个错误。

我尝试使用下面的'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

0 个答案:

没有答案