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