sheet_name.calculate不更新公式,但shift + f9更新?

我自动化工作表,并在VBA内我打电话:

sheet_name.calculate 

问题是这似乎并没有更新我的一些细胞,这取决于对财务插件的API调用。 他们都包含#VALUE! 但是,如果我在同一张纸上按下“shift + f9”,则所有包含#VALUE! 突然刷新并包含正确的数值。

为什么不这样做呢?

(我的计算更新设置被设置为“手动” – 这已经决定,因为我不想自动更新,只有当我的代码调用.calculate)

尝试

 Application.CalculateFull 

http://msdn.microsoft.com/en-us/library/office/ff194064.aspx

如果这不起作用,这可能会有帮助 – 它确保所有的依赖关系被重build

 Application.CalculateFullRebuild 

http://msdn.microsoft.com/en-us/library/office/ff822609.aspx

我还没有亲自发现工作表(“SheetName”)之间的任何区别。计算和shift -f9 – 但它可能是值得的尝试这个:

 Worksheets("SheetName").EnableCalculation=False Worksheets("SheetName").EnableCalculation=True Worksheets("SheetName").Calculate 

这迫使工作表的完整计算,而不是重新计算。