VBA - 应用过滤器后删除可见行

Eit*_*nin 0 excel vba

我有两个宏,它们按日期过滤工作表列,然后删除不相关的列。

但是,它有很多错误,我需要一些帮助来纠正它。

这就是第二个宏应该做的事情:

1)应用过滤器后,只需删除除第一行(标题)之外的可见行- 目前,它会删除包括第一行在内的所有可见行,即使我Offset的代码中有该函数。

2)删除所有过滤器- 现在工作正常

Sub DeleteVisibleRows()

Dim ws1 As Worksheet
Dim WorkRng As Range

Set ws1 = ActiveWorkbook.Sheets("Consolidated")

On Error Resume Next

Set WorkRng = Application.Selection

Application.ScreenUpdating = False
With ws1

WorkRng.Offset(1, 0).Rows.SpecialCells(xlCellTypeVisible).EntireRow.Delete

ws1.AutoFilterMode = False

End With

Application.ScreenUpdating = True
End Sub
Run Code Online (Sandbox Code Playgroud)

Dav*_*cel 5

SpecialCells 的工作方式与之前的答案类似。

    Sub Button1_Click()
    Dim sh As Worksheet, rng As Range, LstRw As Long

    Set sh = Sheets("Sheet1")
    With sh
        LstRw = .Cells(.Rows.Count, "A").End(xlUp).Row
        Set rng = .Range("A2:A" & LstRw).SpecialCells(xlCellTypeVisible)
        rng.EntireRow.Delete
        .AutoFilterMode = False
    End With
End Sub
Run Code Online (Sandbox Code Playgroud)