如何使用 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(使用导入向导时不存在)
我正在尝试修改 Web 查询连接字符串
使用 VBA,但是我在网上找到的所有答案都提供了需要 QueryTable 的解决方案,但由于
我试过使用外部数据范围查询表,
但格式通过修改后的列 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(使用导入向导时不存在)