尝试添加自定义列并使用当前工作簿路径名填充值。
我已经尝试过Excel.Workbook.name和Excel.CurrentWorkbook()以及其他对象,但似乎这些仅限于提取数据。
在VBA中这只是WorkbookObject Path属性。但有权力查询它的另一个故事。 Microsoft网站上的参考和库仅限于电源查询。
答案 0 :(得分:3)
在Power Query中没有直接的方法。如果您可以将值填入单元格,则可以通过Excel.CurrentWorkbook
获得该值。
答案 1 :(得分:1)
在Workbook_Open事件期间打开文件时,您可以使用VBA并填写一个单元格:
Private Sub Workbook_Open()
Dim root As String
root = ActiveWorkbook.path
Range("root").Value = root
'root is the named range used in power query.
End Sub
然后,您可以通过执行以下操作,将指定范围(" root")中的此变量转换为Power Query:
let
Source = Excel.CurrentWorkbook(){[Name="root"]}[Content][Column1]{0}
in
Source
答案 2 :(得分:1)
代替使用VBA,可以使用以下方法,该方法仅涉及使用Excel公式:
=LEFT(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1),1)-1)
() =>
let
CurrentDir = Excel.CurrentWorkbook(){[Name="FilePath"]}[Content]{0}[Column1]
in
CurrentDir
let
Source = Csv.Document(File.Contents(currentdir() & "filename.csv"),[Delimiter=";", Columns=15, Encoding=65001, QuoteStyle=QuoteStyle.None])
in
Source
积分:https://techcommunity.microsoft.com/t5/excel/power-query-source-from-relative-paths/m-p/206150