簡體   English   中英

如何在Excel電子表格中啟用和禁用昂貴的計算?

[英]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

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

使用:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM