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

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

  1. 卸载Power Query插件
  2. 运行“文档检查器”,然后单击以删除自定义XML数据

macroslogging器为步骤2logging下面的代码。

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

但是,使用这个macros我不会达到相同的结果(PQ查询代码从工作簿中消失)。

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

此代码将删除自定义部分,但您将具有电源查询连接,并可能在工作簿中保留TableObjects和DataModels。 尝试刷新会给你错误。

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

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

但是对于我们这些坚持使用Office 2010的人来说,这似乎还不可能。