Power Query神操作!让 Excel 自动完成数据更新
要想实现这个效果,我们得用上 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 选择参数() Dim dig, path Set dig = Application.FileDialog(msoFileDialogFilePicker) With dig .Filters.Add "Excel 文件", "*.xls*", 1 .InitialFileName = ThisWorkbook.FullName If .Show <> 0 Then path = dig.SelectedItems(1) On Error Resume Next ThisWorkbook.Queries("路径").Delete ThisWorkbook.Queries.Add Name:="路径", Formula:= _ """" & path & """" & " meta [IsParameterQuery=true, Type=""Text"", IsParameterQueryRequired=true]" ThisWorkbook.Queries("路径").Refresh End If End With End Sub
最后,我们插入一个图片,指定一下上述宏代码。
单击【图片】,鼠标右键,选择【指定宏】,位置【当前工作簿】,【选择参数】,单击【确定】按钮。
3、效果展示
现在,我们来做一个测试,案例中我已经事先导入测试文件夹中小爽鸭的 Excel 文件,文件路径都引用了路径参数(此时数据源路径是存在的)。
然后,我把「测试」文件夹中的「小爽鸭」文件移到「路径变了」文件夹中。小爽鸭工作簿位置发生改变。
这时,更新一下数据源后,我们可以看到,错误信息中显示【未找到文件】。
接着,我们单击一下图片,执行宏操作,选择移动后的文件,确定。
这时候,就看到查询中的链接没有提示错误了。同时,路径的参数也改成我们刚刚所选择的文件路径。
到这里,大家 get 到了嘛?
本文可能有点难度,不过比较实用。目前还没完全懂的小伙伴可以先收藏。
4、写在最后
因为我们知道 PowerQuery 引用外部文件,是个绝对路径,不是相对路径。
所以我们就想到把路径作为一个参数,引用到查询中,于是就有了新建参数的想法。
但是,还是不方便。这时我们就开始思考:对于不会使用 PowerQuery 更改路径的小伙伴,能不能通过外部自己选择路径呢? 于是就有了 VBA 代码的想法。
因为使用到 VBA,所以文件后缀名,小伙伴们记得保存为 xlsm 格式!
这就是本篇文章的整体思路。
对了,本文使用版本是 Office 365 最新版本,不同版本的提示可能有些不一样,大家也注意一下哦。
相关文章
Excel2021怎么把数据由列转化为行?Excel2021将列转为行的方法
Excel2021怎么把数据由列转化为行?这篇文章主要介绍了Excel2021将列转为行的方法,需要的朋友可以参考下2022-06-20xml格式文件怎么导入到excel?Excel表格将XML文件导入的操作教程
这篇文章主要介绍了xml格式文件怎么导入到excel?Excel表格将XML文件导入的操作教程的相关资料,需要的朋友可以参考下本文详细内容介绍2022-07-06excel如何在多张工作表相同位置录入相同的数据 excel多张工作表录入相
实务工作中我们有时候需要在excel中,在多个工作表的同一个位置输入相同的内容。这种情况如何操作效率更高呢?一起来了解一下吧2022-07-07excel突出重复值怎么操作?excel中突出显示重复值操作方式
这篇文章主要介绍了excel突出重复值怎么操作?excel中突出显示重复值操作方式的相关资料,需要的朋友可以参考下本文详细内容介绍2022-07-12Excel如何实现下拉菜单自动关联数据?excel下拉菜单自动关联数据的方法
这篇文章主要介绍了Excel如何实现下拉菜单自动关联数据?excel下拉菜单自动关联数据的方法的相关资料,需要的朋友可以参考下本文详细内容介绍2022-07-25excel如何复制数据但不复制隐藏单元格 excel仅复制可见单元格数据方法
在复制表格数据时,不想复制隐藏的单元格数据怎么操作呢?一起来了解一下吧2022-09-14excel怎样快速把多列数据变为一列数据 excel多列数据变为一列数据方法
使用excel时,有时需要将表格中多列的数据合并到同一列, 该怎么操作呢?一起来了解一下吧2022-09-15Excel怎么仅显示数据条? excel单元格显示数据条的技巧
Excel怎么仅显示数据条?exel表格中的数据想要做成图表,比如数据条,该怎么操作呢?下面我们就来看看excel单元格显示数据条的技巧2023-08-17powerbi怎么做数据分析? Excel用Power BI绘制数据分析图表的教程
powerbi怎么做数据分析?excel安装的插件,想要做数据分析,下面我们就来看看Excel用Power BI绘制数据分析图表的教程2023-02-24- Excel多个表格怎么合并并实现数据同步?excel中有很多工作表,想要将这些工作表合并并实现数据同步更新,该怎么操作呢?下面我们就来看看详细的技巧2023-02-27
最新评论