在我的 VBAaddin.xlam
中,我使用workbooks.Open("C:\f.xlsm")
打开工作簿f.xlsm
。的工作簿计算模式f.xlsm
是Automatic
,因此我意识到f.xlsm
调用后会自动重新计算中的所有内容workbooks.Open("C:\f.xlsm")
。但这不是我想要的。
即使工作簿的模式是,是否可以通过 VBA 命令打开工作簿而不刷新它Automatic
?
编辑1:
我尝试了@Ripster 建议的想法:
CExcelEvents
1)我创建了一个类模型addin.xlam
:
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
(触发自动重新计算),然后将其计算模式更改为手动。工作簿在改变模式之前已经重新计算了——太迟了!有人有什么主意吗?