完成QueryTable刷新后的MsgBox

时间:2017-06-15 20:07:29

标签: vba excel-vba excel

我有这个代码,我刷新了QueryTable:

Sub refreshCD()    
     ActiveWorkbook.Connections("CD").Refresh
End Sub

如何在刷新完成后显示MsgBox?我试图在刷新之后立即放置它,但显然它在它完成之前运行,因为没有类型的回调或其他东西。

我已经阅读过关于DoEvents()的内容,但我无法理解或应用它,并且不知道这是否是正确的方法。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你可以创建一个类模块并接收查询表的事件,你可以在刷新之前和之后都有,如此

Private WithEvents qtCustom As QueryTable

Public Function Initialise(qtInput As QueryTable)
    Set qtCustom = qtInput
End Function

Private Sub qtCustom_AfterRefresh(ByVal Success As Boolean)
    '   After Refresh
End Sub

Private Sub qtCustom_BeforeRefresh(Cancel As Boolean)
    '   Before Refresh
End Sub