我使用巨大的 Excel 工作表,由于使用宏和其他公式的单元格计算(即使我有一台好计算机也需要超过 5 分钟),它们需要永远加载。我想知道是否有一种方法可以使用当前单元格值保存 excel 文件,而不是每次打开文件时计算单元格。
我正在寻找的是一个可以打开和关闭计算的开关,这样当我需要使用它们时,我可以将它们设置为打开,当我完成后,我可以将其关闭,单元格将保持它们的当前值。
也许我可以创建一个可以做类似事情的宏,或者我只是在做梦,没有其他办法,所以我应该坐等。
我们也有类似的问题。
这就是我们使用的:
Function TurnOfCalcs()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Application.DisplayAlerts = False
End Function
我们在初始数据加载和更新时关闭计算、屏幕更新、警报和事件。
一旦来自工作表的流数据完成,我们就会重新打开更新,如下所示:
Function TurnOnCalcs()
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.DisplayAlerts = True
End Function
您仍然有更新时间,但这意味着您不会在每次更改单个单元格后进行更新,这应该会大大加快文件加载时间。
您可以通过 GUI 和 VBA 为 Excel 设置计算选项:Application.Calculation = xlManual
利用:
Private Sub Workbook_Open()
Module1.TurnOff
End Sub
然后有一个按钮,而不是分配这个宏
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