Как обновить строку подключения веб-запроса к книге Excel с помощью VBA? - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь изменить строку подключения веб-запроса

Web Query connection string

с использованием VBA, однако все ответы, которые я нашел в Интернете, дают решения, для которых требуется QueryTable, но в моей книге нет QueryTable по причинам, которые этот пост объясняет . У меня есть объект списка со свойствами карты XML.

XML Map Properties

Я пытался использовать внешний диапазон данных QueryTable, External Data Range QueryTable

но форматирование выполняется с измененными заголовками столбцов в алфавитном порядке.

modified column headers in alphabetical order

В идеале я хотел бы просто изменить GUID для моей существующей строки подключения (так как срок их действия истекает и его необходимо периодически обновлять), чтобы он сохранил форматирование XML из моего источника. Если это невозможно, и мой единственный вариант - использовать QueryTable, тогда я бы хотел отформатировать результаты из QueryTable, чтобы заголовки столбцов не включали "/row/@".

1 Ответ

0 голосов
/ 29 апреля 2019

Я нашел рабочее решение здесь: https://www.mrexcel.com/forum/excel-questions/750075-vba-update-connection-path-xml-data.html

Окончательный рабочий код:

Sub RefreshXML_Click()
Dim GetProjects As String: GetProjects = "http://api.aceproject.com/?fct=getprojects&guid=" & Cerberus.GUID & "&Filtercompletedproject=False&projecttemplate=0&assignedonly=True&format=xml"
With Sheets("GetProjects").ListObjects("Table1").XmlMap.DataBinding
    .ClearSettings
    .LoadSettings GetProjects
    .Refresh
End With
End Sub

Решением было очистить и затем перезагрузить DataBinding, так как это поле только для чтенияэто не может быть отредактировано.Все остальные решения направлены на изменение таблицы запросов (которая не будет существовать при использовании мастера импорта)

...