Лучший вариант для обновления sh одного запроса с использованием VBA - PullRequest
0 голосов
/ 05 мая 2020

У меня есть рабочий бюллетень с 4-6 запросами, и я просто хотел бы обновить sh 1 из 6 с помощью VBA. Мой вопрос: я использую самый быстрый вариант ниже?

И нет, я не хочу использовать кнопку Refre sh All / Refre sh в Excel, мне нужно было включить это в sub.

КОД:

    ThisWorkbook.Connections("Query - Raw").OLEDBConnection.refresh

    ' THESE ALSO WORK
    ' ActiveWorkbook.RefreshAll
    ' Selection.ListObject.QueryTable.refresh BackgroundQuery:=False

Они не работают:

    ActiveWorkbook.Connections("Raw").refresh
    ThisWorkbook.Connections("Raw").refresh

Заранее благодарим вас за любезные ответы.

1 Ответ

0 голосов
/ 05 мая 2020

Быстрее всего следует обновить sh, в котором указан c запрос по имени.

ThisWorkbook.Connections("YourOLEDBconnection").OLEDBConnection.refresh

Это будет меньший стек вызовов, но не намного / если заметна разница во времени. Он также касается только соединения open, refre sh, close path.

Что-то вроде:

ThisWorkbook.Worksheets("SheetName").ListObjects("query table name").QueryTable.refresh BackgroundQuery:=False 

Я думаю, что более длинный стек вызовов делает дополнительный вызов ссылка на соединение sh показано вверху. Вы также можете понести небольшие накладные расходы в отношении самой таблицы (любое форматирование, которое перекрашивается et c).

Вы можете рассчитать время для различных методов и найти лучшую медианную ссылку sh время и воспользуйтесь этим методом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...