求可修改Power Query数据源并打开文件夹选择器的VBA宏代码
VBA宏:快速更换Power Query文件夹数据源并打开编辑器
下面是针对需求编写的VBA宏代码,操作人员可以一键打开文件夹选择对话框更换数据源,同时直接进入Power Query编辑器进行后续编辑:
Sub UpdatePQFolderSourceAndOpenEditor() Dim targetQuery As WorkbookQuery Dim selectedFolder As String Dim queryName As String ' 替换为你的Power Query查询名称 queryName = "FolderDataSourceQuery" ' 检查目标查询是否存在 On Error Resume Next Set targetQuery = ThisWorkbook.Queries(queryName) On Error GoTo 0 If targetQuery Is Nothing Then MsgBox "未找到指定查询:" & queryName, vbExclamation Exit Sub End If ' 弹出文件夹选择对话框 With Application.FileDialog(msoFileDialogFolderPicker) .Title = "选择新的数据源文件夹" If .Show = -1 Then selectedFolder = .SelectedItems(1) Else MsgBox "未选择文件夹,操作已取消", vbInformation Exit Sub End If End With ' 更新查询的文件夹源路径(转义反斜杠) Dim newSourceFormula As String newSourceFormula = "let" & vbCrLf & _ " Source = Folder.Files(""" & Replace(selectedFolder, "\", "\\") & """)" & vbCrLf & _ "in" & vbCrLf & _ " Source" targetQuery.Formula = newSourceFormula ' 刷新查询并打开Power Query编辑器 ThisWorkbook.RefreshAll Application.CommandBars.ExecuteMso "PowerQueryLaunchEditor" MsgBox "数据源已更新为:" & selectedFolder, vbInformation End Sub
使用说明
- 打开Excel文件,按
Alt+F11打开VBA编辑器 - 插入新模块,将上述代码粘贴进去
- 修改代码中的
queryName为你实际的Power Query查询名称 - 回到Excel,将宏添加到快速访问工具栏,方便操作人员点击运行
可选扩展:让用户手动选择查询
如果需要支持操作人员选择任意查询进行编辑,可替换代码中设置queryName的部分为以下代码:
' 让用户选择要编辑的查询 Dim queryOptions As String Dim chosenQuery As String For Each targetQuery In ThisWorkbook.Queries queryOptions = queryOptions & targetQuery.Name & vbCrLf Next targetQuery chosenQuery = InputBox("请选择要编辑的查询:" & vbCrLf & queryOptions, "选择查询") If chosenQuery = "" Then Exit Sub Set targetQuery = ThisWorkbook.Queries(chosenQuery)
内容的提问来源于stack exchange,提问作者Denni Wibowo
相关产品推荐
相关产品推荐

