Excel自动计算设置

在“Microsoft Office Excel 2007”中有一个复杂的项目,它使用了大量的UDF。 通过Workbook_Open事件中的VBA,我将Excel自动计算设置为OFF,并将计算方法放置在战略位置,以便在需要时手动计算单元格,以便UDF不会无意中执行重新计算。

如果工作簿是唯一在Excel实例中打开(或首先打开)的工作簿,则一切正常。 只有在另一个工作簿(在同一个实例中) 之后打开时,我的项目才会inheritanceFIRST工作簿中的自动计算设置,并对我的UDF执行无限计算。 放置在Workbook_Open事件中的禁用代码在UDF完成计算(可能需要永久)之前不会执行。 这只发生在我的项目不是首先打开的项目上。

通过http://www.decisionmodels.com/calcsecretse.htm ,我发现执行Workbook_Open事件之前执行计算过程是Excel的本质。

所以我明确的问题涉及打开项目后打开另一个工作簿自动计算打开:

  1. 如何强制我的项目禁用自动计算,而不先执行重新计算(记住,问题只发生在项目不是第一个被打开,因为它将遵循先前打开的工作簿的设置)
  2. 如何让项目在另一个实例(双击时)中打开以避免inheritance以前工作簿的自动计算设置。

无论哪种方式,我正在寻找的答案是项目打开,而不是先执行计算。

谢谢

一种方法是使用不同的工作簿(Opener.xls)来启动打开UDF工作簿(udf.xls)

在Opener.xls Workbook_Open代码
– 将计算设置为手动
– 打开udf.xls

在你的问题中,我不认识你用来改变和inheritance这个选项到你的工作簿的方式,但我把它作为一个解决scheme来回答:

使用VBA并运行VBAmacros,在需要计算时立即为活动工作表更改该选项; 像这样使用它:

With ActiveSheet .EnableCalculation = False .EnableCalculation = True .Calculate End With 

用另一种方式,你可能需要阅读MSDN文章的这一部分 。