相关疑难解决方法(0)

按下刷新或刷新全部按钮后如何调用宏?

最后,我希望在任何人刷新工作簿后运行一个宏,特别是使用Excel中"数据"选项卡下的"刷新"按钮.但是,暂时,只要按下Refresh按钮就可以触发BeforeRefresh或AfterRefresh QueryTable事件.

除了Microsoft开发中心网站上提供的"文档"之外,我在本研究过程中阅读的相关帖子包括:

我显然遗漏了一些重要的东西(很可能很明显).这是我到目前为止:

在类模块下(qtclass)

Option Explicit

Private WithEvents qt As Excel.QueryTable

Private Sub qt_AfterRefresh(ByVal Success As Boolean)

    MsgBox "qt_AfterRefresh called sucessfully."
    If Success = True Then
        Call Module2.SlicePivTbl
        MsgBox "If called succesfully."
    End If

End Sub

Private Sub qt_BeforeRefresh(Cancel As Boolean)
    MsgBox "qt_BeforeRefresh called."
End Sub
Run Code Online (Sandbox Code Playgroud)

在ThisWorkbook模块下

Private Sub Workbook_Open()

    Dim qtevent As qtclass
    Dim qt As QueryTable
    Set qt = ThisWorkbook.Worksheets("Data-Fund").ListObjects(1).QueryTable
    Set qtevent = New qtclass

End Sub …
Run Code Online (Sandbox Code Playgroud)

excel vba

13
推荐指数
1
解决办法
2万
查看次数

在时间表内一起刷新外部数据源和数据透视表

在我过去后第一次运行在Excel自动刷新数据透视表的数据,我发现,在我第一次执行查询外部数据源被刷新,大约需要1分钟来执行.在我的第二次运行中,数据透视表已更新.

是否有解决方案(VBA代码)以刷新两个时间表内外部数据源和数据透视表一起通过点击(如果假设我们设定一个计时器)command button

excel vba pivot-table excel-vba

10
推荐指数
2
解决办法
11万
查看次数

如何等待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
查看次数

标签 统计

excel ×3

vba ×3

doevents ×1

excel-vba ×1

pivot-table ×1

powerquery ×1

refresh ×1