【问题标题】:How to add Dynamic Variable in VBA PowerQuery如何在 VBA PowerQuery 中添加动态变量
【发布时间】:2021-02-03 16:57:52
【问题描述】:

我正在通过电源查询将 Excel 工作簿连接到 VBA 宏。宏应选择用户目录中与文件名上正确日期匹配的文件。

路径应该先由变量生成:

f = ThisWorkbook.Path & "\Data\details_" & Month([Date].Value) & "." & Day([Date].Value) & ".xlsx"

然后,应该将变量放入 PowerQuery 中:

ActiveWorkbook.Queries.Add Name:="PortalData", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = Excel.Workbook(File.Contents(f), null, true)," & Chr(13) & "" & Chr(10) & "    Table1_Table = Source{[Item=""Table1"",Kind=""Table""]}[Data]," & Chr(13) & "" & Chr(10) & "    #""Changed Type"" = Table.TransformColumnTypes(Table1_Table,{...})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Changed Type"""

File.Contents(f) 搜索名为“f”的文件而不是路径。 File.Contents() 最初包含双引号中的路径,但将双引号添加到 f 不起作用。

【问题讨论】:

  • 你需要与&连接。
  • @BigBen 我将它添加为 File.Contents(""&f&"") 但我收到有效绝对路径详细信息的错误 &f&
  • 第一步。 Debug.Print 您的连接字符串并在即时窗口中检查。
  • @BigBen 好的,所以运行 Debug.Print f = path 显示为 True。 Debug.Print 路径显示 C:\Users\XXXXX\Downloads\V3.3 Automated Review File 1.28\Folder1\Portal Data\details_2.3.xlsx\ –
  • 我想我的意思是Debug.PrintFormula:= _ 之后的所有内容,即实际的M 查询,而不仅仅是路径部分。

标签: excel vba powerquery


【解决方案1】:

解决方案是替换:

File.Contents(""&f&"")

File.Contents(""" & f & """)

感谢@BigBen 的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-28
    • 2021-08-21
    • 1970-01-01
    • 2022-11-29
    • 2013-09-03
    • 2018-01-08
    • 1970-01-01
    相关资源
    最近更新 更多