通过VBA命令打开工作簿(模式自动)而不重新计算它

时间:2013-07-29 13:32:07

标签: vba excel-vba excel

在我的VBA addin.xlam中,我使用workbooks.Open("C:\f.xlsm")打开工作簿f.xlsmf.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)我将CExcelEventsaddin.xlam中打开f.xlsm的代码相关联:

Private XLApp As CExcelEvents
Sub try()
    Set XLApp = New CExcelEvents
    workbooks.Open ("C:\f.xlsm")
End Sub

然后,try()的结果是首先打开f.xlsm(触发自动重新计算),然后将其计算模式更改为手动。在更改模式之前已经重新计算了工作簿 - 为时已晚!有谁有想法吗?

1 个答案:

答案 0 :(得分:0)

在打开工作簿之前,请尝试将XLCalculation设置为Manual:

Sub try()
    Application.Calculation = xlCalculationManual
    workbooks.Open ("C:\f.xlsm")
End Sub