MS Office и VBA
Рубрика содержит интересные решения, малоизвестные функции и возможности, надстройки и макросы, в общем, все то, что может сделать вашу работу в пакете программ MS Office (в первую очередь - Excel, Word, Access) более эффективной.
С помощью макроса VBA в эксель изменяем часть кода или запроса PowerQuery, без необходимости менять запрос руками.
С помощью макроса VBA в эксель изменяем часть кода или запроса PowerQuery, без необходимости менять запрос руками.
Естественно это будет уместно, если таких изменений руками пришлось бы делать много, в таком случае автоматизация с помощью VBA будет полезна.
Ниже представлен макрос с комментариями на каждом этапе - меняем часть запроса макросом обращаясь к запросу в книге по его имени:
Sub EditPQ1()
'изменение части запроса Power Query макросом
'что позволит например макросом из личной книги макросов обновлять уже существующие шаблоны/расчеты
'Часть запроса которую хотим поменять
Text1 = "before_str = Number.ToText(Date.Year(today )-1)"
'Часть запроса на который хотим поменять
Text2 = "before_str = Number.ToText(Date.Year(today )-2)"
'считываем весь код запроса и зашиваем его в переменную
ChangeMe = ThisWorkbook.Queries("PQ1").Formula
'в текстовой переменной производим замену нужного участка кода
ChangeMe = Replace(ChangeMe, Text1, Text2)
'переписываем код запроса полученной текстовой переменной
ThisWorkbook.Queries("PQ1").Formula = ChangeMe
End Sub
PS Ниже будет видео, которое мне помогло разобраться в синтаксисе и вообще в взаимодействии VBA и Power Query. Рекомендую ознакомиться для общего развития.