标准代码运行速度非常慢

我目前正在用Excel编写一个冗长的程序。 我的代码似乎都运行良好,直到它到达这三条线。 奇怪的部分是,这似乎是标准的代码,并在微软网站上find它,所以我不知道为什么它会如此可怕的工作:

Worksheets("Product Structure").Range("L2:Q" & Last).SpecialCells(xlCellTypeFormulas, xlErrors).Clear Worksheets("Product Structure").Range("X2:AC" & Last).SpecialCells(xlCellTypeFormulas, xlErrors).Clear Worksheets("Product Structure").Range("F" & Last & ":K53000").Clear 

当我跑这些优秀的怪胎,不会回应,很多时候在我不得不重新启动程序。 variables“Last”通常在3万行左右,所以很显然它需要查看大量的数据。 而且,这两个数据范围都是完整的function,这两行是为了删除那些不起作用的function。

有没有人有更好的解决scheme? 谢谢!

在运行代码之前尝试closuresscreenupdating。 您也可以尝试通过将计算设置为手动来暂停计算,但是如果在清除单元格的两个区域之间存在依赖关系,则可能需要计算清除调用之间的工作表。

 Application.ScreenUpdating = False Application.Calculation = xlCalculationManual With Worksheets("Product Structure") .Range("L2:Q" & Last).SpecialCells(xlCellTypeFormulas, xlErrors).Clear .UsedRange.Calculate 'if any dependencies .Range("X2:AC" & Last).SpecialCells(xlCellTypeFormulas, xlErrors).Clear .Range("F" & Last & ":K53000").Clear End With Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic