我目前正在开发一个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