如何在Excel电子表格中启用和禁用昂贵的计算?
我使用巨大的Excel工作表,他们永远加载,因为使用macros和其他公式(即使我有一个很好的电脑超过5分钟)的单元格计算。 我想知道是否有一种方法来保存Excel文件的当前单元格值,而不是每次打开文件计算单元格。
我正在寻找的就像一个开关,可以打开和closures计算,所以当我需要使用它们时,我可以将它们设置为打开,当我完成时,我可以将其closures,单元格将保持其当前值。
也许我可以创build一个能做这样的事情的macros,或者我只是在做梦,没有别的办法,所以我应该坐下来等。
我们有一个类似的问题。
这是我们使用的:
Function TurnOfCalcs() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False Application.DisplayAlerts = False End Function
当初始数据加载和更新时,我们closures计算,屏幕更新,警报和事件。
一旦来自工作表的stream式传输数据完成,我们就像这样重新打开更新:
Function TurnOnCalcs() Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True Application.DisplayAlerts = True End Function
你仍然有这个时间,但这意味着你不会在每个单元格更改之后进行更新,这会显着加快你的文件加载时间。
您可以通过GUI和VBA为Excel设置计算选项: Application.Calculation = xlManual
这里是一些更多的信息... http://www.decisionmodels.com/calcsecretse.htm
使用:
Private Sub Workbook_Open() Module1.TurnOff End Sub
然后有一个button比分配这个macros
Sub Button1_Click() If Application.EnableEvents = True Then TurnOff Else TurnOn End If End Sub
然后在模块中有这个:
Public Sub TurnOn() Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic End Sub Public Sub TurnOff() Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic End Sub