4

我使用巨大的 Excel 工作表,由于使用宏和其他公式的单元格计算(即使我有一台好计算机也需要超过 5 分钟),它们需要永远加载。我想知道是否有一种方法可以使用当前单元格值保存 excel 文件,而不是每次打开文件时计算单元格。

我正在寻找的是一个可以打开和关闭计算的开关,这样当我需要使用它们时,我可以将它们设置为打开,当我完成后,我可以将其关闭,单元格将保持它们的当前值。

也许我可以创建一个可以做类似事情的宏,或者我只是在做梦,没有其他办法,所以我应该坐等。

4

3 回答 3

2

我们也有类似的问题。

这就是我们使用的:

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

您仍然有更新时间,但这意味着您不会在每次更改单个单元格后进行更新,这应该会大大加快文件加载时间。

于 2013-06-12T16:03:50.323 回答
0

您可以通过 GUI 和 VBA 为 Excel 设置计算选项:Application.Calculation = xlManual

这是更多信息... http://www.decisionmodels.com/calcsecretse.htm

于 2013-06-12T16:01:20.400 回答
0

利用:

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
于 2013-06-12T16:03:49.743 回答