Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 过滤及;删除整行_Vba_Filter_Rows - Fatal编程技术网

Vba 过滤及;删除整行

Vba 过滤及;删除整行,vba,filter,rows,Vba,Filter,Rows,我正在尝试构建一个可以过滤和删除35000行的代码 我使用了下面的代码,但它需要很多时间(超过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 RngToDelet

我正在尝试构建一个可以过滤和删除35000行的代码

我使用了下面的代码,但它需要很多时间(超过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

您可以使用性能更快的AdvancedFilter来完成任务

A.不含VBA的解决方案

数据->高级筛选,选择“就地筛选列表”,并填写数据范围和条件

B.带有VBA代码的解决方案

范围(“A1:S50000”)。高级筛选操作:=XLFilterInput,标准范围:=Range(“U1:U2”),唯一性:=False


请使用单元格U1上的字段名(第19列)和单元格U2上的“删除”来定义条件。当然,您可以将标准范围放在其他位置。

您可以使用性能更快的AdvancedFilter来完成任务

A.不含VBA的解决方案

数据->高级筛选,选择“就地筛选列表”,并填写数据范围和条件

B.带有VBA代码的解决方案

范围(“A1:S50000”)。高级筛选操作:=XLFilterInput,标准范围:=Range(“U1:U2”),唯一性:=False


请使用单元格U1上的字段名(第19列)和单元格U2上的“删除”来定义条件。当然,您可以将您的标准范围放在其他位置。

您是否已经
application.ScreenUpdate=FALSE
?这将节省大量时间。是的,我使用了-application.ScreenUpdate=FALSE。您是否已经
application.ScreenUpdate=FALSE
?这将节省大量时间。是的,我使用了-application.screenupdating=FALSE