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

时间:2013-04-02 09:06:33

标签: excel vba

我正在自动化工作表并在vba中调用:

sheet_name.calculate

问题是这似乎没有更新我的一些依赖于对金融插件的API调用的单元格。它们仍包含#VALUE!但是,如果我在同一张纸上按“shift + f9”,则包含#VALUE!的所有单元格会突然刷新并包含正确的数值。

为什么不.calculate这样做?

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

2 个答案:

答案 0 :(得分:1)

尝试

Application.CalculateFull

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

如果这不起作用,这可能会有所帮助 - 它确保重建所有依赖项

Application.CalculateFullRebuild

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

答案 1 :(得分:1)

我个人发现工作表之间没有任何区别(“SheetName”)。计算和转移-f9 - 但是值得尝试一下:

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

这会强制完整计算工作表而不是重新计算。