日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

用 PowerQuery 让 Excel 自动完成数据更新

發布時間:2023/11/27 windows 47 传统文化
生活随笔 收集整理的這篇文章主要介紹了 用 PowerQuery 让 Excel 自动完成数据更新 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是在研究 PowerQuery 的小爽鴨~

當我們使用 PowerQuery 獲取外部的 Excel 文件時,傳遞進去的是絕對路徑

如下圖,我們導入 Excel 文件之后,進入 PQ 編輯器中,可以看到外部的 Excel 文件是個絕對路徑。

一旦我們導入的文件的位置發生改變,打開刷新后,會有彈窗錯誤提示。

雖然單擊編輯錯誤欄中的 【編輯設置】,單擊 【瀏覽】按鈕,重新選定指定路徑,就可以更新好路徑。

但是,如果導入外部文件的工作表太多,就要一個個更改路徑,非常麻煩

▲ 查詢的表,需要一個個更改文件的路徑

頭大~

今天,小爽就帶大家,拓展一下思路 ,動態獲取工作簿路徑~

1、路徑參數化

既然要重復更改路徑的話,一般就會有一種思路,將路徑參數化。

具體操作 :

? 新建一個路徑參數

在【主頁】選項卡下,選擇【管理參數】,【新建參數】。

① 名稱:路徑。

② 類型:文本。

③ 建議的值:值列表(如果常用的路徑有多個,就可以采用值列表類型。只有一個就采用文本類型)。

④ 輸入值列表信息,默認值,當前值。

⑤ 單擊【確定】按鈕,此時路徑參數就新建好啦!

新建好參數之后,我們就需要把參數引用在數據源中。

? 路徑字符串改成參數

這里可以用兩種方式。

一種是更改數據源。

在【主頁】選項卡下,單擊【數據源設置】;

在數據源設置中,

① 單擊【更改源】。

② 參數名稱為:路徑。

③ 類型:參數。

④ 單擊【確定】按鈕,關閉。

另一種方法是直接更改 M 函數公式。

將使用到文件路徑的查詢,分別改成參數名稱(路徑)即可。

上面我們已經把路徑參數化了。后面一旦外部文件位置發生改變時,我們只需要更改路徑參數即可,并不需要一個個去更改查詢的路徑。

到這里,路徑參數就搞定啦~

不過,前面更改路徑的參數值是針對有 PQ 基礎的小伙伴,那么有沒有辦法,可以讓我們自行選擇指定路徑,將路徑的信息傳遞給參數呢?

要想實現這個效果,我們得用上 VBA。

2、交互式獲取路徑

首先我們先新建一個參數看看,里面的 M 函數是怎么寫的。

由于這里是讓用戶自行選擇路徑,所以參數的類型選文本就可以。

接著,來看一下該參數對應的 M 函數是怎么寫的。

選擇查詢 【路徑】,單擊【高級編輯器】。

從圖中可以看到,參數對應 M 語言如下 :

"C:\Users\80522\Desktop\小爽鴨xlsx" meta [IsParameterQuery=true, Type="Text", IsParameterQueryRequired=true]

通過觀察,我們可以構造出如下形式。

路徑  + "meta [IsParameterQuery=true, Type="Text", IsParameterQueryRequired=true]"

那么下面,就是利用 VBA 執行新建路徑參數的操作。

主要有如下思路 :

通過 FileDialog 對象,讓用戶選擇指定的文件,將獲取到的路徑字符串,進行構造路徑參數的 M 函數公式,利用 VBA 添加 PQ 查詢(Add 方法),讓代碼執行 在 PQ 編輯器中新建 以 M 函數公式的路徑參數的查詢。如果路徑參數查詢已經存在則先刪除。

新建一個模塊,輸入我按照思路編寫的 VBA 代碼。

Sub 選擇參數()
    Dim dig, path    
    Set dig = Application.FileDialog(msoFileDialogFilePicker)
            With dig      
                  .Filters.Add "Excel 文件", "*.xls*", 1            
                  .InitialFileName = ThisWorkbook.FullName            
                  If .Show <> 0 Then          
                        path = dig.SelectedItems(1)                
                        On Error Resume Next                
                        ThisWorkbook.Queries("路徑").Delete                
                        ThisWorkbook.Queries.Add Name:="路徑", Formula:= _             
                              """" & path & """" & " meta [IsParameterQuery=true, Type=""Text"", IsParameterQueryRequired=true]"                
                              ThisWorkbook.Queries("路徑").Refresh            
                              End If        
                         End With
                  End Sub

最后,我們插入一個圖片,指定一下上述宏代碼。

單擊【圖片】,鼠標右鍵,選擇【指定宏】,位置【當前工作簿】,【選擇參數】,單擊【確定】按鈕。

3、效果展示

現在,我們來做一個測試,案例中我已經事先導入測試文件夾中小爽鴨的 Excel 文件,文件路徑都引用了路徑參數(此時數據源路徑是存在的)。

然后,我把「測試」文件夾中的「小爽鴨」文件移到「路徑變了」文件夾中。小爽鴨工作簿位置發生改變。

這時,更新一下數據源后,我們可以看到,錯誤信息中顯示【未找到文件】。

接著,我們單擊一下圖片,執行宏操作,選擇移動后的文件,確定。

這時候,就看到查詢中的鏈接沒有提示錯誤了。同時,路徑的參數也改成我們剛剛所選擇的文件路徑。

到這里,大家 get 到了嘛?

本文可能有點難度,不過比較實用。目前還沒完全懂的小伙伴可以先收藏。

4、寫在最后

因為我們知道 PowerQuery 引用外部文件,是個絕對路徑,不是相對路徑。

所以我們就想到把路徑作為一個參數,引用到查詢中,于是就有了新建參數的想法。

但是,還是不方便。這時我們就開始思考:對于不會使用 PowerQuery 更改路徑的小伙伴,能不能通過外部自己選擇路徑呢? 于是就有了 VBA 代碼的想法。

因為使用到 VBA,所以文件后綴名,小伙伴們記得保存為 xlsm 格式!

這就是本篇文章的整體思路。

對了,本文使用版本是 Office 365 最新版本,不同版本的提示可能有些不一樣,大家也注意一下哦。

本文來自微信公眾號:秋葉 Excel (ID:excel100),作者:小爽

廣告聲明:文內含有的對外跳轉鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節省甄選時間,結果僅供參考,所有文章均包含本聲明。

總結

以上是生活随笔為你收集整理的用 PowerQuery 让 Excel 自动完成数据更新的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲欧洲天堂 | 一眉道姑| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 人妻换人妻a片爽麻豆 | 秋霞影院午夜老牛影院 | 国产15页 | 免费成人深夜夜 | 奇米影视9999 | 少妇高潮一区二区三区 | 在线观看欧美亚洲 | 久久久久久久极品内射 | 国产999久久久 | 日本美女一区二区三区 | 欧美大浪妇猛交饥渴大叫 | 99在线视频免费观看 | 中文字幕成人在线 | 亚洲国产福利 | 美脚の诱脚舐め脚视频播放 | 日日操夜夜爱 | 91在线播 | 传媒一区二区 | 人人爽人人爽人人爽人人爽 | 中文字幕在线观看亚洲 | 国产a√| 制服丝袜一区二区三区 | 黄色男女网站 | a级黄色网址 | 香蕉网站在线 | 国产精品久久久久久网站 | 先锋影音av资源网 | 精品一区中文字幕 | 亚洲综合伊人 | 日本免费视频 | 亚洲aaa视频 | 欧美一区二区三区黄片 | 秘密基地电影免费版观看国语 | 久久综合精品国产二区无码不卡 | 综合影院 | 欧美黄色片 | 91九色pron | 亚洲欧洲免费 | 欧美韩日精品 | 亚洲午夜精品久久久久久人妖 | 日韩av在线免费播放 | 黄页嫩草| 德国性经典xxxx性hd | 久久中文娱乐网 | 青青色在线 | 亚洲精品在线影院 | 天天天天 | 麻豆综合网 | 五月婷婷六月天 | 日韩免费高清视频 | 免费中文字幕 | 久久福利网 | 97caop| 东方影库av | 国产女人18毛片水真多18精品 | 精品一区二区三区视频 | 国产美女在线观看 | 学生调教贱奴丨vk | 欧美精品一二区 | 亚洲一级影院 | 亚洲人成在线免费观看 | 熟女少妇一区二区三区 | 国产特黄毛片 | 成人精品免费视频 | 欧美黄页在线观看 | 欧美极品三级 | 国产精品美女久久久久 | 亚洲欧洲av在线 | 精品无码一区二区三区的天堂 | 亚洲人屁股眼子交1 | 欧美性日韩 | 国产区亚洲区 | 极品色综合 | 欧美日韩免费一区 | 亚洲春色av | 中文字幕+乱码+中文字幕明步 | 欧美国产精品一区二区三区 | 午夜视频免费观看 | 人妻色综合网站 | 天天影视色 | 国产精品入口夜色视频大尺度 | 中文字幕在线看人 | 免费a v在线 | 免费黄色视屏 | 69性视频 | 久久中文在线 | 日本免费在线播放 | 欧美精品久久久久久久多人混战 | 97小视频 | 午夜精品成人 | 亚洲成av人片在线观看无 | 在线免费观看欧美大片 | 无码精品人妻一区二区三区漫画 | 九九热免费在线视频 | 天天天操| 日本a√在线观看 |