删除Power Query查询'使用VBA自定义XML数据

时间:2015-02-20 10:00:48

标签: excel vba excel-vba powerquery

我在Excel 2010文件中有Power Query查询,并希望使用VBA删除这些查询。到目前为止,我可以通过以下步骤手动实现:

  1. 卸载Power Query addin
  2. 运行Document Inspector并单击以删除自定义XML数据
  3. 宏录制器记录步骤2的以下代码。

    Sub Makro1()
    '
    ' Makro1 Makro
    '
    '
    ActiveWorkbook.RemoveDocumentInformation (xlRDIPrinterPath)
    ActiveWorkbook.RemoveDocumentInformation (xlRDIDocumentProperties)
    ActiveWorkbook.RemoveDocumentInformation (xlRDIInactiveDataConnections)
    End Sub
    

    但是,使用此宏我没有达到相同的结果(=从工作簿中删除PQ查询代码)。

    有关如何使用VBA删除PQ查询代码的任何想法?

2 个答案:

答案 0 :(得分:0)

此代码将删除自定义部件,但您将在工作簿中保留Power Query连接,可能还有TableObjects和DataModel。尝试刷新会给你带来错误。

Sub DeletePowerQueryCustomXml()
  Set parts = ActiveWorkbook.CustomXMLParts.SelectByNamespace("http://schemas.microsoft.com/DataMashup")
  For Each part In parts
    part.Delete
  Next part
End Sub

答案 1 :(得分:0)

对于Excel 2016预览,有新的VBA对象使我们能够以编程方式更好地处理PQ。例如。查看Sub DeleteQuery(): https://gallery.technet.microsoft.com/office/VBA-to-automate-Power-956a52d1

然而,对于那些坚持使用Office 2010的人来说,这似乎还不可能。