试图添加自定义列并将值填充为当前工作簿路径名称。
我尝试了Excel.Workbook.name和Excel.CurrentWorkbook()以及其他对象,但似乎它们仅限于提取数据。
在VBA中,这仅是WorkbookObject Path属性。但在Power Query中,情况又不同了。Microsoft网站上的参考资料和库对Power Query来说是有限的。
试图添加自定义列并将值填充为当前工作簿路径名称。
我尝试了Excel.Workbook.name和Excel.CurrentWorkbook()以及其他对象,但似乎它们仅限于提取数据。
在VBA中,这仅是WorkbookObject Path属性。但在Power Query中,情况又不同了。Microsoft网站上的参考资料和库对Power Query来说是有限的。
不使用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
在 Power Query 中没有直接的方法来实现这个功能。如果您可以将该值填入单元格中,则可以通过 Excel.CurrentWorkbook
获取该值。
您可以使用VBA,在Workbook_Open事件期间打开文件时填充单元格:
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
let
Source = Excel.CurrentWorkbook(){[Name="root"]}[Content][Column1]{0}
in
Source