Ошибка обработки обновления Power Query с помощью VBA - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть код VBA, который дважды обновляет мои подключения к данным, а затем вычисляет рабочую книгу.Я добавил On Error Resume Next, но когда возникает ошибка с обновлением запроса, он игнорирует мою обработку ошибок VBA и выдает ошибку «Неожиданная ошибка, что-то пошло не так. Если проблема не устранена, перезапустите Excel».После того, как я нажал кнопку «Отмена», он продолжает работу с моим кодом, но один запрос, вызвавший ошибку, все еще показывает, что он выполняется, хотя другие запросы выполнялись после него.Я отключил фоновое обновление на всех соединениях, и я просто пытаюсь найти код VBA, где я могу обработать ошибку с помощью запроса мощности.

В конечном итоге я бы хотел, чтобы мой код отменил запрос, вызвавший ошибку, и обновил его индивидуально после того, как весь код был выполнен.

Как мы обрабатываем ошибки в запросе мощности с VBA?

Текущий код:

On Error Resume Next 
ActiveWorkbook.RefreshAll 
ActiveWorkbook.RefreshAll 
ActiveWorkbook.Calculation = xlAutomatic

1 Ответ

0 голосов
/ 06 марта 2019

В Power Query вы можете обернуть свой код следующим образом (при условии, что это Query1):

try
  let
  ....

  in
  ...

otherwise
  "Error"

и затем иметь один запрос на перенос ошибок для всех запросов как:

if Query1 = "Error" then "Error" 
else if Query2 = "Error" then  "Error"
...
else "No Error"

, которыйзатем вы можете загрузить в Excel новый лист и проверить с помощью макроса VBA, содержит ли значение такой ячейки «Ошибка» или нет.

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