[算表] 如何提高代码的运行速度

楼主: yyingx (bless)   2016-09-03 13:12:17
软件:excel
版本:2007
Sub aaa()
r = [w65536].End(xlUp).Row
For i = r To 1 Step -1
If Cells(i, 23) = 0 Then Rows(i).Delete
Next
End Sub
如果第23列有10000行,其中等于0的单元格有8000,那么运行改代码就非常费时间
求能大幅度提高速度的宏。
作者: soyoso (我是耀宗)   2016-09-03 13:21:00
不用循环的话,用筛选,删除或是用进阶筛选将不为0的复制到其他地方,就可不删列range.autofilter或range.advancedfilter看是否可改善
楼主: yyingx (bless)   2016-09-03 13:32:00
当前的方法就是进阶筛选为0,然后SpecialCells(xlCellTypeVisible).Delete但是还是有点慢
作者: soyoso (我是耀宗)   2016-09-03 13:39:00
那将不为0复制到其他工作表,不删列,改以删工作表
楼主: yyingx (bless)   2016-09-03 14:04:00
一会试试,现在有问题是这进阶筛选0,删除,出现了对话框"是否删除工作表整行",如何取消这个对话框,默认"确认"解决了 Application.DisplayAlerts = False
作者: newton41 (Newton)   2016-09-04 01:25:00
不要先做delete,跑一圈挑出来之后一次删除。或是先clear,然后一次sort。

Links booklink

Contact Us: admin [ a t ] ucptt.com