繁体   English   中英

如何使用 VBA 更改电源查询的来源?

[英]How to change source of a power query using VBA?

所以在 Excel 2016 中,他们有一个名为 Power Query 的简洁工具,基本上是一个美化的 Excel 表格。 每个表都有用于过滤、删除列等的步骤......第一步是源步骤,分配一个连接字符串基本上是为了检索数据,通常这个源只是指向创建它的查询。

无论如何,我正在尝试在 VBA 中动态更改这些电源查询的来源,有人有任何想法吗?

我尝试使用整个连接氛围,但没有成功。

您可以通过 ActiveWorkbook.Item 访问查询。 然后您可以修改公式属性。 您可以在此处找到有关这些对象的文档。

请注意,Power Query 对象模型仅在 Excel 2016 中添加到 VBA,无法在以前的版本中访问。

可以通过Workbook对象中的Queries集合访问查询 源的相关属性是Formula

示例代码:

ActiveWorkbook.Queries.Item("MyQuery").Formula = "[Insert actual M formula here]"

许多年后,但我正在为那些像我一样仍然坚持使用 Excel 2013 的人添加不同的解决方案。 正如@Alejandro 在他的回复中所述,Power Query 仅被添加到 Excel 2016 的对象模型中。

如果您使用的是旧版本的 Excel,则可以使用类似于此处讨论的相对源路径的基于单元格的解决方案: https : //techcommunity.microsoft.com/t5/excel/power-query-source-来自相对路径/mp/206150

基本上在您的工作簿中的某个位置有一个单元格,其中包含您的查询源。 使用标准 Excel 名称命名该单元格。 在下面的示例中,我将单元格命名为SourceFileName ,并尝试将 Excel 文件加载到 PowerQuery。 源 Excel 文件的全名(包括路径)在SourceFileName 然后,您可以通过 Power Query 访问该单元格的内容:

<previous M code>
sourceFileName= Excel.CurrentWorkbook(){[Name="SourceFileName"]}[Content]{0}[Column1],
Source = Excel.Workbook(File.Contents(sourceFileName ), null, true),
<rest of M code>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM