如何使用 VBA 更新 Excel 工作簿 Web 查询连接字符串?

How do I update an Excel Workbook Web Query Connection String using VBA?

我正在尝试修改 Web 查询连接字符串

使用 VBA,但是我在网上找到的所有答案都提供了需要 QueryTable 的解决方案,但由于 的原因,我的工作簿没有 QueryTable。我有一个列表 object 和 XML 地图属性。

我试过使用外部数据范围查询表,

但格式通过修改后的列 headers 按字母顺序排列。

理想情况下,我只想修改现有连接字符串上的 GUID(因为它们会过期并且需要定期更新),以便它会保留来自我的源的 XML 格式。如果那不可能,而我唯一的选择是使用 QueryTable,那么我想要一种方法来格式化 QueryTable 的结果,以便列 headers 不包含“/row/@”。

我在这里找到了一个可行的解决方案: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,因为它是一个无法编辑的只读字段。所有其他解决方案都专注于尝试修改查询 Table(使用导入向导时不存在)