在我的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