簡體   English   中英

獲取當前工作簿路徑 - Excel Power Query

[英]Get Current Workbook Path - Excel Power Query

嘗試添加自定義列並使用當前工作簿路徑名稱填充值。

我嘗試過 Excel.Workbook.name 和 Excel.CurrentWorkbook() 和其他對象,但似乎這些僅限於提取數據。

在 VBA 中,這只是 WorkbookObject Path 屬性。 但隨着權力的質疑,它又是另一回事了。 Microsoft 站點上的參考和庫僅限於電源查詢。

https://msdn.microsoft.com/en-us/library/mt779182.aspx

您可以使用以下僅涉及使用 Excel 公式的方法,而不是使用 VBA:

  1. 在 Excel 中定義以下公式並將此單元格命名為“FilePath”:
=LEFT(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1),1)-1)
  1. 在 PowerQuery 中添加以下函數。 這將返回當前目錄:
() =>
let
    CurrentDir = Excel.CurrentWorkbook(){[Name="FilePath"]}[Content]{0}[Column1]
in
    CurrentDir 
  1. 現在您可以從當前目錄導入您的 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/mp/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

然后,您可以通過執行以下操作,將該變量從命名范圍(“root”)中獲取到 Power Query 中:

let
    Source = Excel.CurrentWorkbook(){[Name="root"]}[Content][Column1]{0}
in
    Source

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM