0

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

sheet_name.calculate

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

为什么 .calculate 不这样做呢?

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

4

2 回答 2

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

于 2013-04-02T09:38:44.223 回答
1

我个人没有发现 worksheets("SheetName").Calculate 和 shift-f9 之间的任何区别 - 但可能值得尝试一下:

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

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

于 2013-04-02T17:50:44.487 回答