过滤器&删除整行

时间:2016-10-14 13:42:34

标签: vba filter rows

我正在尝试构建一个可以过滤和删除大约35,000行的代码。

我使用了以下代码,但需要花费很多时间(超过10分钟),有人可以帮助我加快速度吗?

代码1:

Range("$A$1:$S$50000").AutoFilter Field:=19, Criteria1:="Delete"
ActiveSheet.AutoFilter.Range.Offset(1, 0).Rows.SpecialCells(xlCellTypeVisible).Delete (xlShiftUp)

代码2:

Dim RngToDelete As Range
Range("$A$1:$S$50000").AutoFilter Field:=19, Criteria1:="Delete"
Set RngToDelete = Selection.SpecialCells(xlCellTypeVisible)
RngToDelete.Delete

谢谢, Amith

1 个答案:

答案 0 :(得分:0)

您可以使用AdvancedFilter以更快的速度完成任务。

:一种。没有VBA的解决方案

数据 - >高级过滤,选择'就地过滤列表'并填写数据范围和标准。

<强> B中。使用VBA代码的解决方案

范围(&#34; A1:S50000&#34;)。AdvancedFilter动作:= xlFilterInPlace,CriteriaRange:=范围(&#34; U1:U2&#34;),唯一:=假

使用单元格U1上的字段名称(第19列)定义条件,并且&#39;&lt;&gt;删除&#39;在细胞U2上。当然,您可以随时将您的标准范围放在其他地方。