Excel自动计算设置
Posted
技术标签:
【中文标题】Excel自动计算设置【英文标题】:Excel Automatic Calculation Setting 【发布时间】:2011-07-18 05:05:40 【问题描述】:我在“Microsoft Office Excel 2007”中有一个复杂的项目,它使用了大量的 UDF。通过 Workbook_Open 事件中的 VBA,我将 Excel 自动计算设置为 OFF,并在需要时手动计算单元格的策略性放置的 Calculate 方法,这样 UDF 就不会无意中执行重新计算。
如果工作簿是在 Excel 实例中打开的唯一(或第一个打开的),则一切正常。只有在 AFTER 另一个工作簿(在同一实例中)打开时,我的项目才会从 FIRST 工作簿继承自动计算设置,并对我的 UDF 执行无休止的计算。放置在 Workbook_Open 事件中的禁用代码在 UDF 完成计算之前不会执行(这可能需要很长时间)。仅当我的项目不是首先打开的项目时才会发生这种情况。
通过http://www.decisionmodels.com/calcsecretse.htm,我发现Excel的本质是在在Workbook_Open事件执行之前执行计算过程。
所以我的问题显然与正在打开的项目之后打开另一个工作簿并打开自动计算:
-
如何强制我的项目禁用自动计算
没有它首先执行重新计算(记住,只有问题
当项目不是第一个打开的项目时发生,因为它会
遵循之前打开的工作簿中的设置)或...
如何让项目在另一个实例中打开(双击时)以避免
从以前的工作簿继承自动计算设置。
无论哪种方式,我正在寻找的答案是在不先执行计算的情况下打开项目。
谢谢
【问题讨论】:
【参考方案1】:一种方法是使用不同的工作簿 (Opener.xls) 开始打开 UDF 工作簿 (udf.xls)
在 Opener.xls 中的 Workbook_Open 代码 - 将计算设置为手动 - 打开 udf.xls
【讨论】:
您好,查尔斯,感谢您的回答。客户认为保留额外的文件太多了,因为这个项目将在数百台计算机上使用。不能一直要求用户通过另一个文件打开项目。我个人认为这是一个好主意,但不是客户想要的。感谢您的信息。【参考方案2】:在您的问题中,我不认识您用于更改和继承该选项到您的工作簿的方式,但我将其作为解决方案回答:
只要您需要计算,就可以使用 VBA 并运行 VBA 宏来为您的活动工作表更改该选项;像这样使用它:
With ActiveSheet
.EnableCalculation = False
.EnableCalculation = True
.Calculate
End With
您可能需要的其他方式,您可以阅读this part of MSDN article。
【讨论】:
以上是关于Excel自动计算设置的主要内容,如果未能解决你的问题,请参考以下文章