通过Excel中的Query-tab刷新时触发BeforeRefresh事件

时间:2019-01-13 18:40:26

标签: excel vba events

在我的Excel工作簿中,我有一个QueryTable,用户可以通过Query-tab刷新该表。发生这种情况时,我需要触发BeforeRefresh事件。我无法使它正常工作。

我想触发BeforeRefresh事件以将EnableEvents设置为False。这是必需的,因为在表上有一个Worksheet_Change-trigger,它不应在刷新表时触发。 当用户更改查询表中的内容时,Worksheet_Change触发器将更新访问表。

我已使用本主题来设置BeforeRefresh-和AfterRefresh-triggers,其工作方式与本主题中所述相同。 Refresh All not triggering QueryTable's BeforeRefresh event - why? 所以基本上我的问题是,如何在Query-tab刷新上使用BeforeRefresh扩展此方法。

我的代码:

此工作簿:

Option Explicit
Private Destination As New TestClass
Private Sub Workbook_Open()
    Destination.Init ThisWorkbook.Sheets("Gemeenten").ListObjects(1).QueryTable
End Sub

TestClass:

Option Explicit
Private WithEvents qt As QueryTable
Public Sub Init(pQt As QueryTable)
    Set qt = pQt
End Sub
Private Sub qt_BeforeRefresh(Cancel As Boolean)
    MsgBox "BeforeRefresh"
End Sub
Private Sub qt_AfterRefresh(ByVal Success As Boolean)
    MsgBox "AfterRefresh"
End Sub

0 个答案:

没有答案