[英]How can I enable and disable expensive calculations in an Excel spreadsheet?
我使用了大量的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
您仍然擁有udpate時間,但這意味着您在每個單元格更改后都不會進行更新,這將大大加快文件加載時間。
您可以通過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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.