用 PowerQuery 让 Excel 自动完成数据更新

学习推荐

各位好,

当咱们应用 PowerQuery 获得内部的 Excel 文件时,通报出来的是彻底门路

以下图,咱们导入 Excel 文件以后,进入 PQ 编纂器中,可以看到内部的 Excel 文件是个彻底门路。

一旦咱们导入的文件的地位产生转变,翻开革新后,会有弹窗过错提醒。

固然单击编纂过错栏中的 【编纂设置】,单击 【阅读】按钮,从新选定指定门路,就能够更新好门路。

然而,假如导入内部文件的工作表太多,就要一个个变动门路,十分费事

▲查问的表,须要一个个变动文件的门路

头大~

今日,小爽就带各位,拓展一下思绪 ,动静获得工作簿门路~

1、门路参数化

既然要反复变动门路的话,个别就会有一种思绪,将门路参数化。

详细操纵 :

新建一个门路参数

在【主页】选项卡下,抉择【治理参数】,【新建参数】。

① 称号:门路。

② 范例:文本。

③ 倡议的值:值列表(假如常用的门路有多个,就能够采取值列表范例。只有一个就采取文本范例)。

④ 输出值列表信息,默认值,以后值。

⑤单击【断定】按钮,此时门路参数就新建好啦!

新建好参数以后,咱们就须要把参数援用在数据源中。

门路字符串改成参数

这里可以用两种方式。

一种是变动数据源。

在【主页】选项卡下,单击【数据源设置】;

在数据源设置中,

① 单击【变动源】。

② 参数称号为:门路。

③ 范例:参数。

④ 单击【断定】按钮,封闭。

另一种方式是间接变动 M 函数公式。

将应用到文件门路的查问,分辨改成参数称号(门路)便可。

上级咱们已经把门路参数化了。后面一旦内部文件地位产生转变时,咱们只须要变动门路参数便可,并不须要一个个去变动查问的门路。

到这里,门路参数就搞定啦~

不外,后面变动门路的参数值是对于有 PQ 基本的小搭档,那末有不措施,可让咱们自行抉择指定门路,将门路的信息通报给参数呢?

要想完成也许后果,咱们得用上 VBA。

2、交互式获得门路

起初咱们先新建一个参数看看,里面的 M 函数是怎么写的。

因为这里是让用户自行抉择门路,因此参数的范例选文本就能够。

接着,来看一下该参数对应的 M 函数是怎么写的。

抉择查问 【门路】,单击【高等编纂器】。

从图中可以看到,参数对应 M 言语以下 :

"C:/Users/80522/Desktop/小爽鸭xlsx"meta[IsParameterQuery=true,Type="Text",IsParameterQueryRequired=true]

经由过程观察,咱们可以结构出以下情势。

门路+"meta[IsParameterQuery=true,Type="Text",IsParameterQueryRequired=true]"

那末底下,就是应用 VBA 履行新建门路参数的操纵。

主要有以下思绪 :

经由过程 FileDialog 工具,让用户抉择指定的文件,将获得到的门路字符串,停止结构门路参数的 M 函数公式,应用 VBA 增加 PQ 查问(Add 方式),让代码履行 在 PQ 编纂器中新建 以 M 函数公式的门路参数的查问。假如门路参数查问已经存在则先删除。

新建一个模块,输出我按照思绪编写的 VBA 代码。

Sub抉择参数()Dimdig,pathSetdig=Application.FileDialog(msoFileDialogFilePicker)Withdig.Filters.Add"Excel文件","*.xls*",1.InitialFileName=ThisWorkbook.FullNameIf.Show0Thenpath=dig.SelectedItems(1)OnErrorResumeNextThisWorkbook.Queries("门路").DeleteThisWorkbook.Queries.AddName:="门路",Formula:=_""""&path&""""&"meta[IsParameterQuery=true,Type=""Text"",IsParameterQueryRequired=true]"ThisWorkbook.Queries("门路").RefreshEndIfEndWithEndSub

最初,咱们拔出一个图片,指定一下上述宏代码。

单击【图片】,鼠标右键,抉择【指定宏】,地位【以后工作簿】,【抉择参数】,单击【断定】按钮。

3、后果展现

当初,咱们来做一个测试,案例中我已经事前导入测试文件夹中小爽鸭的 Excel 文件,文件门路都援用了门路参数(此时数据源门路是存在的)。

而后,我把「测试」文件夹中的「小爽鸭」文件移到「门路变了」文件夹中。小爽鸭工作簿地位产生转变。

这时候,更新一下数据源后,咱们可以看到,过错信息中显现【未找到文件】。

接着,咱们单击一下图片,履行宏操纵,抉择挪动后的文件,断定。

这时候候,就看到查问中的链接不提醒过错了。同期,门路的参数也改成咱们刚所抉择的文件门路。

到这里,各位 get 到了嘛?

本文可能有点难度,不外比拟适用。今朝还没完全懂的小搭档可以先珍藏。

4、写在最初

因为咱们晓得 PowerQuery 援用内部文件,是个彻底门路,不是绝对门路。

因此咱们就想到把门路作为一个参数,援用到查问中,于是就有了新建参数的主意。

然而,仍是不方便。这时候咱们就起始考虑:对不会应用 PowerQuery 变动门路的小搭档,能不能经由过程内部本人抉择门路呢? 于是就有了 VBA 代码的主意。

因为应用到 VBA,因此文件后缀名,小搭档们记得保存为 xlsm 格局!

这就是本篇文章的团体思绪。

对了,本文应用版块是 Office 365 最新版块,差别版块的提醒可能有些不一样,各位也注意一下哦。

 

广而告之申明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等情势),用于通报更多信息,节俭甄选时光,成果仅供参考,一切文章均包括本申明。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 298050909@qq.com 举报,一经查实,本站将立刻删除。如若转载,请注明出处:https://www.kufox.com//xxtj/2024-01-15/5700.html

标签: 完成数据更新