添加查询时获取当前目录路径

时间:2019-01-25 02:02:55

标签: excel vba

我有一个片段,可以查询目录中的文件名。它工作得很好,但是这个目录一直在变化,我必须手动更新代码中的源链接。我想知道是否可以以某种方式将ActiveWorkbook.path(或任何其他解决方法)并入此特定构造中,而不是每次我必须在新文件夹中进行查询时都重新键入路径

ActiveWorkbook.Queries.Add Name:="Stage 6", Formula:= _
    Source = Folder.Files(""C:\Users\Romanov\Desktop\TESTBOX\INDEX2"")

1 个答案:

答案 0 :(得分:0)

下面是一个快速示例,显示了如何解决此问题:

Option Explicit

Public Sub UpdateFolderQueryFormula(ByVal psQueryName As String, ByVal psPath As String)
    ThisWorkbook.Queries(psQueryName).Formula = "let Source = Folder.Files(""" & psPath & """) in Source"
End Sub

Public Sub Test()
    UpdateFolderQueryFormula "Stage 6", ThisWorkbook.Path
End Sub

在需要时调用UpdateFolderQueryFormula,无论是在打开工作簿时还是应用户请求,都可以由用户提供一个或两个参数(在这种情况下,添加验证和错误处理)。

分配给.Formula时,必须提供正确构建的字符串,该字符串看起来类似于通过Excel用户界面创建的字符串。