【问题标题】:VBA Removed filtered row while keeping headerVBA 在保留标题的同时删除了过滤的行
【发布时间】:2018-10-23 08:57:06
【问题描述】:

我设法使用以下方法获取过滤器行。

Sub FilterRows()
ActiveSheet.Range("A1").AutoFilter field:=7, Criteria1:=" = "
ActiveSheet.Range("A1").AutoFilter field:=11, Criteria1:="<>"
End Sub

但是当我尝试使用它来删除过滤后的行时,它最终会删除我的整个数据,但我的标题除外。

Public Sub test()

ActiveSheet.Range("A1").AutoFilter field:=1, Criteria1:="A"
Application.DisplayAlerts = False
ActiveSheet.UsedRange.Offset(1, 0).Resize(ActiveSheet.UsedRange.Rows.Count - 1).Rows.Delete
Application.DisplayAlerts = True
End Sub

如何在保留数据和标题的同时删除过滤后的行?

【问题讨论】:

    标签: vba filter delete-row


    【解决方案1】:

    更改括号中的范围以适合您的范围并尝试:

    ActiveSheet.Range("$A$1:$A$" & Lastrow).Offset(1, 0).SpecialCells _
    (xlCellTypeVisible).EntireRow.Delete
    

    【讨论】:

    • 我能知道如何确定范围“$A$1:$A$”吗?
    • @哪个是您表格的第一个和最后一个单元格?
    • 这是 A 到 N 列,我有 3 行过滤需要删除。标题是 A1 到 N1 我这样放吗? ActiveSheet.Range("$A:$N" & Lastrow).Offset(1, 0).SpecialCells _ (xlCellTypeVisible).EntireRow.Delete
    • 是的,以上是正确的,但在您必须声明和计算 N 列的 Lastrow 之前。声明:Dim Lastrow as long 计算:Lastrow =Sheet1 .Range("N" & Rows.Count).End (xlUp).Row 根据需要更改工作表
    • 感谢您的帮助。我回去后会试一试。美好的一天!
    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 2013-09-22
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    相关资源
    最近更新 更多