我正在自动化工作表并在vba中调用:
sheet_name.calculate
问题是这似乎没有更新我的一些依赖于对金融插件的API调用的单元格。它们仍包含#VALUE!
但是,如果我在同一张纸上按“shift + f9”,则包含#VALUE!
的所有单元格会突然刷新并包含正确的数值。
为什么不.calculate这样做?
(我的计算更新设置设置为“手动” - 这已经决定,因为我不想自动更新,只有当我的代码调用.calculate时)
答案 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
这会强制完整计算工作表而不是重新计算。