2017-06-05 27 views
1

Excel 2013中有一个不寻常的问题。我有一个VBA脚本来从SQL中提取数据并生成HTML文件,然后将这些HTML文件导入到选项卡中,然后重新计算依赖于之前生成的数据的公式。Excel VBA Application.Calculate不起作用,但Ctrl + Alt + F9做

这里的基本结构:

Sub RefreshData() 

Task1 ' run 1st query and generate HTML file 
Task2 ' run 2nd query and generate HTML file 
. 
. 
. 
Taskn ' run nth query and generate HTML file 
RefreshDataInTabs ' refresh all tabs with generated HTML files 
Calculate_AllOpenWorkbooks ' calculate all formulas that depend on data obtained in Tasks above 

End Sub 

这里是计算通话...

Sub Calculate_AllOpenWorkBooks() 

Application.Calculate 

End Sub. 

所以一切正常,直到调用Calculate_AllOpenWorkBooks。包含公式的单元格不会更新。在“Excel选项”的“计算”选项窗口中选择“自动”工作簿计算。手动数据 - >刷新全部不起作用但是 Ctrl + Alt + F9做!

我很茫然如何调试这件事情。我会很感激任何反馈。谢谢。

问候,

+0

'application.CalculateFull'如何? –

回答

1

很多尝试来解决使用

的SendKeys“{F9}”我结束了这个问题后

有10ms的延迟,但它的工作原理,你可以用它码。 如果需要,甚至可以为Ctrl + Alt + F9做SendKeys“^%{F9}”。

祝你好运!