簡體   English   中英

Excel-在打開時停止計算以防止循環引用

[英]Excel - Stop Calculation on Opening to prevent circular reference

我有一個帶有大量內置循環引用的大型電子表格。 我內置了VBA代碼,用於在打開時設置為手動和迭代計算,並且還設置了在設置為迭代計算后強制在打開工作簿時進行計算的代碼。 但是,似乎工作簿在打開時甚至在運行此VBA代碼之前都會嘗試進行計算,因此,如果工作簿已設置為不進行迭代計算的自動計算,則它會運行工作簿,然后由於循環引用而崩潰。

我知道我可以將自己的“應用程序”設置設置為始終進行迭代計算,但是此工作簿與可能沒有相同應用程序設置的其他用戶共享。 在代碼將應用程序設置為迭代計算之前,有沒有一種方法可以在打開時停止計算。

謝謝。

在空白的.xlsm文件中,在工作簿打開事件中,將此代碼放入

   Private Sub Workbook_Open()
       Application.calculation = xlCalculationManual
       ' Add code to open the real workbook
       ' ---------
   End Sub

由於將根據上次打開的工作簿是手動還是自動來驅動計算,因此必須將上述代碼放入“調用者”工作簿中(如上所示)。 打開此呼叫者工作簿后,將首先禁用計算,然后再拉出您的工作簿,以確保它具有手動計算模式。

另外,在所需的工作簿(帶有循環引用的工作簿)中,OnOpen事件應觸發調用者工作簿的關閉而不保存。

這樣,該過程對用戶是透明的,並且他/她僅打開呼叫者簿。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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