Инициировать BeforeRefresh-событие при обновлении через вкладку Query в Excel - PullRequest
0 голосов
/ 13 января 2019

В моей Excel-книге у меня есть QueryTable, который пользователь может обновить через Query-tab. Когда это происходит, мне нужно вызвать событие BeforeRefresh. Я не могу заставить это работать.

Я хочу вызвать событие BeforeRefresh, чтобы установить для параметра EnableEvents значение False. Это необходимо, поскольку в таблице есть триггер Worksheet_Change, который не должен запускаться при обновлении таблицы. Триггер Worksheet_Change обновляет таблицу доступа, когда пользователь что-то изменяет в QueryTable.

Я использовал эту тему для настройки триггеров BeforeRefresh- и AfterRefresh, которые работают, как сказано в теме. Обновить все, не вызывая событие QueryTable BeforeRefresh - почему? Поэтому в основном мой вопрос заключается в том, как расширить этот метод с помощью функции BeforeRefresh при обновлении вкладки Query.

Мой код:

ThisWorkbook:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...