获取当前工作簿路径 - Excel Power Query
Get Current Workbook Path - Excel Power Query
正在尝试添加自定义列并使用当前工作簿路径名填充值。
我已经尝试了 Excel.Workbook.name 和 Excel.CurrentWorkbook() 以及其他对象,但似乎它们仅限于提取数据。
在 VBA 中,这只是 WorkbookObject 路径 属性。但随着权力的查询,它是另一个故事。 Microsoft 站点上的参考资料和库仅限于电源查询。
在 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
然后,您可以按照以下方式将命名范围 ("root") 中的变量导入 Power Query:
let
Source = Excel.CurrentWorkbook(){[Name="root"]}[Content][Column1]{0}
in
Source
除了使用 VBA,您还可以使用以下仅涉及使用 Excel 公式的方法:
- 在 Excel 中定义以下公式并将此单元格命名为“FilePath”:
=LEFT(CELL("filename",$A),FIND("[",CELL("filename",$A),1)-1)
- 在 PowerQuery 中添加以下函数。这将 return 当前目录:
() =>
let
CurrentDir = Excel.CurrentWorkbook(){[Name="FilePath"]}[Content]{0}[Column1]
in
CurrentDir
- 现在您可以从当前目录导入 CSV(或其他)文件:
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
正在尝试添加自定义列并使用当前工作簿路径名填充值。
我已经尝试了 Excel.Workbook.name 和 Excel.CurrentWorkbook() 以及其他对象,但似乎它们仅限于提取数据。
在 VBA 中,这只是 WorkbookObject 路径 属性。但随着权力的查询,它是另一个故事。 Microsoft 站点上的参考资料和库仅限于电源查询。
在 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
然后,您可以按照以下方式将命名范围 ("root") 中的变量导入 Power Query:
let
Source = Excel.CurrentWorkbook(){[Name="root"]}[Content][Column1]{0}
in
Source
除了使用 VBA,您还可以使用以下仅涉及使用 Excel 公式的方法:
- 在 Excel 中定义以下公式并将此单元格命名为“FilePath”:
=LEFT(CELL("filename",$A),FIND("[",CELL("filename",$A),1)-1)
- 在 PowerQuery 中添加以下函数。这将 return 当前目录:
() =>
let
CurrentDir = Excel.CurrentWorkbook(){[Name="FilePath"]}[Content]{0}[Column1]
in
CurrentDir
- 现在您可以从当前目录导入 CSV(或其他)文件:
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