[算表] 如何提高代碼的運行速度

作者: 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