小编neu*_*lly的帖子

如何等待Power Query刷新完成?我用"BackgroundQuery = False"尝试了"DoEvents",而且更多,没有任何效果

建立:

  • Windows 7(在工作中)
  • Windows 10(在家)
  • Excel 2016(在工作中构建4627)
  • Excel 2016(在家建8730)
  • Power Query设置为导入,追加和转换Excel文件的文件夹.这一步有效.

问题描述

使用任何技术的任意组合后,等待Power Query完成刷新,如下面所示的"我尝试过的东西:"部分所述.根据"查询和连接"窗格中显示的刷新指示器(微调器?)图标,可以在Power Query表完成更新之前显示消息框并执行任何其他代码.

上述语句的例外是Application类的"OnTime"方法,如下面的"代码"部分所示,它似乎不会中断电源查询刷新的轮询.但是,此方法的问题在于它使用硬编码的时间来暂停VBA代码,并且这并不总是有效,因为查询的数据的大小,数量和持续时间将随时间而变化.

我尝试过的事情:

  • 我已阅读所有国家使用的"调​​用DoEvents"的StackOverflow上(和其他网站的资源),"BackgrgoundQuery =假",并CalculateUntilAsyncQueriesDone方法和属性.
  • 我已经尝试按照此链接的建议创建一个类来创建查询前/后查询更新事件(下面的代码示例中未显示).
  • 我已经尝试使用Do Until/While循环使用QueryTable方法的.Refreshing = True/False属性来等待刷新完成.
  • 我曾尝试设置在Excel菜单中BackgroundQuery属性(菜单栏- >数据- >连接- >属性)以虚假的"subro"这里的建议:等到ActiveWorkbook.RefreshAll完成- VBA,随着图像菜单在这里:

用于设置BackgroundQuery属性的Excel菜单.

码:

Private Sub sht_sub_Refresh_AllConnections_dev()
'Name: sht_sub_Refresh_AllConnections_dev
'Purpose: An attempt at using VBA to wait for Queries to finish updating before displaying a message.
'Description: Waits for a hard coded period of time before dislpaying the message box.
'State: WIP.
'Dev: Needs a way to look at …
Run Code Online (Sandbox Code Playgroud)

excel vba refresh doevents powerquery

8
推荐指数
1
解决办法
4902
查看次数

标签 统计

doevents ×1

excel ×1

powerquery ×1

refresh ×1

vba ×1