You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA实现Web查询完成时消息框通知(替代定时器)

解决Web Query刷新完成后自动通知的方法

原来的固定等待时间方式不够灵活,你可以通过QueryTable的事件监听实现刷新完成时自动通知,具体步骤如下:

  1. 插入类模块

    • 按Alt+F11打开VBA编辑器,右键点击项目列表,选择「插入」→「类模块」。
    • 按F4调出属性窗口,将类模块名称改为QueryTableMonitor。
  2. 编写类模块的事件代码
    在类模块中粘贴以下代码,用于监听刷新完成事件:

    Public WithEvents qt As QueryTable
    
    Private Sub qt_AfterRefresh(ByVal Success As Boolean)
        If Success Then
            MsgBox "Web Query刷新完成!"
        Else
            MsgBox "Web Query刷新失败,请检查连接或数据源!"
        End If
    End Sub
    
  3. 编写刷新执行的宏代码
    在标准模块(如Module1)中替换原宏代码:

    Dim monitor As QueryTableMonitor
    
    Sub Pull_data_from_JSE_Website()
        Set monitor = New QueryTableMonitor
        ' 指定要刷新的Web Query(此处取Raw Data工作表的第一个QueryTable,可根据实际调整序号)
        Set monitor.qt = Sheets("Raw Data").QueryTables(1)
        ' 启动异步刷新,完成后自动触发通知
        monitor.qt.Refresh BackgroundQuery:=True
    End Sub
    

关键说明

  • 该方式通过事件触发通知,无需固定等待时间,刷新完成立刻弹出提示。
  • 若工作表中有多个Web Query,可循环遍历Sheets("Raw Data").QueryTables实现逐个监控。
  • BackgroundQuery:=True保持异步刷新,不会卡住Excel的其他操作。

内容的提问来源于stack exchange,提问作者Chase Ashley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:01:46