我在“Microsoft Office Excel 2007”中有一个复杂的项目,它使用了大量的UDF。通过 Workbook_Open 事件中的VBA,我将Excel自动计算设置为OFF以及策略性地放置计算方法,以便在需要时手动计算单元格,以便UDF不会无意中进行重新计算。
如果工作簿是在Excel实例中打开的 ONLY (或第一个打开),那么一切都很完美。只有当它打开 AFTER 另一个工作簿(在同一实例中)时,我的项目才会从 FIRST 工作簿继承自动计算设置,并对我的UDF执行无限计算。在UDF完成计算之前,不会执行放置在Workbook_Open事件中的禁用代码(可能需要永久)。只有当我的项目不首先打开的项目时才会发生这种情况。
通过http://www.decisionmodels.com/calcsecretse.htm,我发现执行计算过程之前执行Workbook_Open事件是Excel的本质。
所以问题我显然与正在打开的项目有关 AFTER 打开另一个工作簿并打开自动计算:
无论哪种方式,我正在寻找的答案是项目打开而不先执行计算。
由于
答案 0 :(得分:1)
一种方法是使用不同的工作簿(Opener.xls)来启动打开UDF工作簿(udf.xls)
在Opener.xls中的Workbook_Open代码
- 将计算设置为手动
- 打开udf.xls
答案 1 :(得分:0)
在你的问题中,我不认识你用来改变和继承你的工作簿选项的方式,但我作为解决方案回答:
使用VBA并运行VBA宏,只要您需要计算,就可以为您的活动工作表更改该选项;通过这样使用它:
With ActiveSheet
.EnableCalculation = False
.EnableCalculation = True
.Calculate
End With
您可能需要其他方式,可以阅读this part of MSDN article。