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

时间:2019-04-26 20:06:34

标签: excel vba connection-string excel-web-query

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

Web Query connection string

使用VBA,但是我在网上找到的所有答案都提供了需要QueryTable的解决方案,但是由于this post explains的原因,我的工作簿中没有QueryTable。我所拥有的是具有XML Map Properties的列表对象。

XML Map Properties

我尝试使用外部数据范围查询表, External Data Range QueryTable

但是格式是通过按字母顺序修改的列标题来实现的。

modified column headers in alphabetical order

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

1 个答案:

答案 0 :(得分:0)

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