我使用巨大的excel工作表,因为使用宏和其他公式进行单元格计算,所以它们需要永远加载(即使我有一台好的计算机,也要超过5分钟)。我想知道是否有办法用当前单元格值保存excel文件,而不是每次打开文件时计算单元格。
我正在寻找的是一个可以打开和关闭计算的开关,这样当我需要使用它们时我可以将它们设置为打开,当我完成后,我可以将它切换为关闭和细胞会保留他们当前的价值。
也许我可以创建一个可以做类似事情的宏,或者我只是在做梦,没有别的办法,所以我应该坐等等。
答案 0 :(得分: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
您仍然拥有udpate时间,但这意味着您不会在每次单个单元格更改后执行更新,这会大大加快文件加载时间。
答案 1 :(得分:0)
您可以通过GUI和VBA设置Excel的计算选项:Application.Calculation = xlManual
以下是更多信息...... http://www.decisionmodels.com/calcsecretse.htm
答案 2 :(得分: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