我试图创建一个宏,它打开一个文件,刷新SAP BW查询中的数据,然后保存并关闭。
当前宏会启动刷新,但在完成之前会转到“保存并关闭”命令,因此不会发生任何更改。
我已经看到,有办法关闭'暂停'或'睡眠'一段时间,让命令完成,但我希望扩大这个宏打开多个工作簿的查询,需要不同的时间来刷新,因此这将是最后的手段。我现在用的是DoEvents
,但似乎也不太好用。
注意:刷新通过SAP BEx Analyzer 7进行。
我的代码:
Sub OpenAndRefresh()
Workbooks.Open "QueryRefresh.xls", UpdateLinks:=False
Workbooks("QueryRefresh.xls").Activate
Run "BExAnalyzer.XLA!SAPBEXrefresh", True
DoEvents
Workbooks("QueryRefresh.xls").Close SaveChanges:=False
End Sub
任何帮助或指导都将不胜感激。
1条答案
按热度按时间x6492ojm1#
我有一个宏用于此目的,我从来没有遇到过这个问题:
这里代码方面的主要区别是我直接调用刷新宏而不是使用Run命令。
编辑:要使此工作,您还需要在您的项目中添加“BExAnalyzer”引用。如果您不熟悉添加引用,则需要进入Tools --> References,然后从可用引用的长列表中单击“BExAnalyzer”。
我不知道为什么这会有什么不同,但正如我所说,我总是发现我的宏在继续之前完成刷新(即使这需要长达15分钟)。我也在用BEx 7