Страницы: 1
RSS
Удалить/изменить запрос Power Query макросом VBA
 
Доброго времени суток, уважаемые форумчане!

Подскажите пожалуйста, можно ли как-то удалить (а лучше изменить) существующий запрос с помощью макроса VBA? Как создать запрос (с помощью записи макроса) я разобрался: ActiveWorkbook.Queries.Add, а как его удалить/изменить - не могу найти.

Спасибо!
 
Нет, запросами PowerQuery на данный момент нельзя управлять из VBA. Максимум, что возможно в последних версиях - обновить.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, спасибо.

Жаль...
 
Доброе время суток.
Управлять можно в 2016 - там Power Query часть объектной модели Excel. Работа с объектами стандартная. Методы коллекции Queries. Методы для объекта-запроса Power Query, включая изменение текста запроса и удаление объекта.
Успехов.
 
Андрей VG, помогите пожалуйста примером "на пальцах"!

У меня есть запрос с именем "Start". Пытаюсь его удалить макросом (испробованные варианты):
Код
WorkbookQuery.Start.Delete
WorkbookQuery.Delete.Start
WorkbookQuery.Delete Name:="Start"
ActiveWorkbook.Queries.Delete Name:="Start"

Ничего не работает. Как правильно использовать этот метод? Спасибо!

Да, извините, забыл упомянуть, что использую MS Office 2016
Изменено: revgenyv - 03.03.2017 20:20:19
 
Сейчас под рукой 2016 нет :)
Так что как только приблизительно.
Код
ActiveWorkbook.Queries("Start").Delete
 
Андрей VG, вот он - ответ на мой вопрос!

Спасибо Вам огромное!
 
так не получится?
Код
WorkbookQuery.Item("Start").Delete
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, нет, сработал первый вариант от Андрей VG

Код
ActiveWorkbook.Queries("Start").Delete
Изменено: revgenyv - 03.03.2017 10:11:09
 
Итак, спасибо всем неравнодушным! Подведу маленький итог (может кому пригодится):

Код
'Добавление нового запроса
ActiveWorkbook.Queries.Add Name:="Имя", Formula:="Формула"

'Удаление существующего запроса
ActiveWorkbook.Queries("Имя").Delete

'Изменение существующего запроса
ActiveWorkbook.Queries("Start").Formula ="Формула"
Изменено: revgenyv - 03.03.2017 16:09:36
 
revgenyv, а как сделать ссылку на ячейку с конкретным именем здесь? То есть чтобы значение ячейки копировалось в запрос.

Сделал вот так - но не помогает (Здесь ссылка на ячейку, но все равно не работает)
Код
ActiveWorkbook.Queries("Запрос1").Formula = "let Источник = Worksheets(Лист6),Range(А2) in Источник"
P/S/ - Решил. Надо вот так:
Код
ActiveWorkbook.Queries("Тест").Formula = "let NewColumn =" & Worksheets(4).Cells(2, 1) & "in NewColumn"
Изменено: Денис - 24.12.2017 14:46:13
 
добрый день!

Цитата
Андрей VG написал: ActiveWorkbook.Queries("Start").Delete
а как это может быть реализовано в XL-2013?
там ActiveWorkbook не содержит коллекцию Queries (насколько я понял ошибку)
 
Spacer, реализовать можно только вот так, XL-2013 -> Excel 2016

Первый раз вижу, чтобы сию программу обзывали как размер одежды :D
Страницы: 1
Наверх