VBA - 快速删除具有过滤器的多行

时间:2018-03-12 09:50:24

标签: vba filter row

我目前正在开发一个VBA脚本,用于删除带有过滤器的Excel电子表格中的行。我一直在看下面的帖子,它让我很好地理解它应该如何工作,但我很难将它实现到我自己的电子表格中。

Excel VBA Performance - 1 million rows - Delete rows containing a value, in less than 1 min

我的宏的想法是它通过不包含'N5'的所有内容过滤第4列并删除它们。

如果有人能帮我写这篇文章,我们将不胜感激。

-

编辑:当前公式确实有效,但运行大约需要5-7分钟。我需要一种方法来尽可能地减少这个时间。

谢谢

    Sub LinesideFilter()

    Dim t#, crit As Range, data As Range, ws As Worksheet
    Dim r&, fc As Range, lc As Range, fr1 As Range, fr2 As Range
    FastWB True
    t = Timer


Sheets("Data").Activate
Range("A2").Select
LastRow = Cells(Rows.Count, 1).End(xlUp).Row


    Range("A1:M" & LastRow).Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$M$" & LastRow).AutoFilter Field:=4, Criteria1:="<>n5*" ', Operator:=xlAnd
    'Rows("2:2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.ShowAllData

    FastWB False

End Sub

0 个答案:

没有答案