Как изменить параметр в Power Query без преобразования значения в формулу? - PullRequest
1 голос
/ 08 мая 2019

Я следовал инструкциям в этой теме:

Как изменить параметры Excel Power Query с VBA

, в котором указан следующий код для изменения параметра Power Query:

ThisWorkbook.Queries([ParameterName]).Formula = 'New code here

Однако он преобразует значение в формулу и добавляет «=» в начало:

Error

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

    Source = Xml.Tables(Web.Contents("http://api.aceproject.com/?fct=getprojects&guid=" & GUID & "&Filtercompletedproject=False&projecttemplate=0&assignedonly=True")),

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

Используя VBA, как я могу изменить либо просто значение параметра (без его преобразования в формулу), либо весь исходный URL?

1 Ответ

1 голос
/ 08 мая 2019

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

ThisWorkbook.Queries("GUID").Formula = """dogs"""

Вот окончательная версия, которая передает переменную в виде текста:

Sub RefreshQuery_Click()
    ThisWorkbook.Queries("GUID").Formula = """" & GUID & """"
End Sub

Чтобы запрос сохранил свойство параметра, добавьте следующие метаданные:

    ThisWorkbook.Queries("GUID").Formula = """" & GUID & """" & " meta [IsParameterQuery=true, Type=""Text"", IsParameterQueryRequired=true]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...