我在删除列的代码速度方面遇到问题。下面的代码需要5秒钟才能运行,如果我在运行之前保存文档,那么它只需要1秒。节省不是很多,但我有一台体面的计算机,其他运行此表的用户基本上都在瘦客户端上,而且我有更多的代码可以运行。另外,当工作簿完成时,我无法保存,因为它被用作模板并在完成时保存为新的工作簿。具有数据的行数是〜49,000,我已经尝试过,没有ClearContents
。Excel VBA删除列速度慢,除非先保存文档
有没有什么办法可以加速而不必先保存文件?
Sub GenerateOperations()
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.EnableEvents = False
.CutCopyMode = False
End With
Dim OpSheet As Worksheet
Set OpSheet = Sheet3
Application.Calculation = xlCalculationManual
OpSheet.Range("A:C,E:G,L:Q").ClearContents
OpSheet.Range("A:C,E:G,L:Q").Delete xlShiftToLeft
Application.Calculation = xlCalculationAutomatic
With Application
.ScreenUpdating = True
.DisplayAlerts = True
.EnableEvents = True
End With
End Sub
他为什么要关闭它?强烈建议关闭屏幕更新,以提高性能 –
这不会加快它 – Rdster
是关闭它加快了速度。根据我的经验重新开启它是不必要的,如果之后立即调用另一个子程序,则可能会减慢代码。 – Nick