在我的VBA addin.xlam
中,我使用workbooks.Open("C:\f.xlsm")
打开工作簿f.xlsm
。 f.xlsm
的工作簿计算模式为Automatic
,因此我意识到在调用f.xlsm
后,workbooks.Open("C:\f.xlsm")
中的所有内容都会自动重新计算。但这不是我想要的。
是否可以通过VBA命令打开工作簿而无需刷新它,即使工作簿的模式为Automatic
?
修改1:
我尝试了@Ripster建议的想法:
1)我在CExcelEvents
中创建了一个班级模型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
(触发自动重新计算),然后将其计算模式更改为手动。在更改模式之前已经重新计算了工作簿 - 为时已晚!有谁有想法吗?
答案 0 :(得分:0)
在打开工作簿之前,请尝试将XLCalculation设置为Manual:
Sub try()
Application.Calculation = xlCalculationManual
workbooks.Open ("C:\f.xlsm")
End Sub