0
在我的VBA addin.xlam
中,我使用workbooks.Open("C:\f.xlsm")
打開工作簿f.xlsm
。 f.xlsm
的工作簿計算模式爲Automatic
,因此我意識到在調用workbooks.Open("C:\f.xlsm")
後,f.xlsm
中的所有內容都會自動重新計算。但這不是我想要的。通過VBA命令打開工作簿(模式自動),無需重新計算
即使工作簿的模式是Automatic
,是否可以通過VBA命令打開工作簿而不刷新它?
編輯1:
我嘗試的想法@Ripster建議:
1)我在addin.xlam
創建的類模型CExcelEvents
:
Private WithEvents App As Application
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
Application.Calculation = xlCalculationManual
End Sub
Private Sub Class_Initialize()
Set App = Application
End Sub
2)我聯繫CExcelEvents
到代碼在addin.xlam
中打開f.xlsm
:
Private XLApp As CExcelEvents
Sub try()
Set XLApp = New CExcelEvents
workbooks.Open ("C:\f.xlsm")
End Sub
然後,try()
確實是第一次打開f.xlsm
(它會觸發自動重新計算),然後將其計算模式更改爲手動。在改變模式之前,工作簿已經被重新計算了 - 太遲了!有人有什麼主意嗎?
我不知道這是否會工作,但你也許可以訂閱工作簿事件並取消計算。 [本網站](http://www.cpearson.com/excel/appevent.aspx)介紹瞭如何訂閱這些活動。 – Ripster
好吧,我不能更改/添加VBA宏到'f.xlsm',所以我不認爲它會工作... – SoftTimur
在打開之前只需設置Application.Calculation = xlCalculationManual將不起作用? – mattboy