付費限定

[VBA] 將【特定檔案名稱】重新命名

更新於 2024/08/20閱讀時間約 6 分鐘

問題:

前幾天,LINE 某 VBA 社群網友問到一個有關 如何將【特定檔案名稱】重新命名 的問題,需使用 函數、VBA或其它方法 來做設計。


Q:要在多個資料夾內搜尋檔案名稱符合 開頭為【ABCDEF,後面1碼任意字元,接著後面有8碼日期,後面1碼半形空白】,要將此16碼字串刪除,其餘後面的字串均要保留。

Ex:【ABCDEF 20240817 homepage.html】要改成【homepage.html】

特定檔名 - 更改前與更改後

特定檔名 - 更改前與更改後


VBA程式執行結果 - 可在多個資料夾內,搜尋特定檔名並更改。

VBA程式執行結果 - 可在多個資料夾內,搜尋特定檔名並更改。



當然 LINE 某 VBA 社群裡的大神們紛紛提供了很多很棒的解決方法,像:《 使用【Dir】+【Name As】來修改檔案名稱 》、《 用 copy 或 ren 指令來做成批次檔(bat檔),批量將檔案名稱複製或重新命名 》、《 用 DOS 或 PowerShell 來達到修改檔案名稱的目的 》...等等。

但最後我還是請出了 神隊友 ChatGPT 4o 來幫忙 ~




靈感:

會想嘗試研究一下這問題,是因為之前也遇過類似的問題,但那時是想在某個資料夾內搜尋副檔名為xls的檔案,用的 Excel VBA 語法也非常老舊,就是 【Application.FileSearch】。不過這個好用的語法在 Excel 2007 就被微軟停用了... 而微軟官方的建議是使用【Dir函數】【FileSystemObject】來代替。


以下是 2011/3/31 個人所珍藏的【Application.FileSearch】搜尋子資料夾的微軟官網VBA語法的備份資料,現在已無法使用了... 看看就好囉 !

SearchSubFolders 屬性

請參閱套用至範例特定如果指定的搜尋範圍包括 LookIn 屬性指定的資料夾中的所有子資料夾,則為 True。讀/寫 Boolean。


範例

本範例會在 [My Documents] 資料夾及其所有子資料夾中搜尋以 Cmd 開頭的檔案,並顯示每個所找到檔案的檔名及位置。

Set fs = Application.FileSearch
With fs
.LookIn = "C:\My Documents"
.SearchSubFolders = True
.FileName = "cmd*"
If .Execute() > 0 Then
MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
Else
MsgBox "There were no files found."
End If
End With



在當時的年代(2007),微軟一停用 FileSearch,大家一陣哀鴻遍野,連我也不例外,我一直想不懂為何微軟要停用這麼好用的語法。只好求助 Google 大神,找了好久好久終於讓我找到了 !!

大約 2013年吧... 確切的年代可能更早,cjz大神 提供了完美的 FileSearch 替代方案,cjz大神的VBA程式碼,我當然是看不懂 !! 但大神的程式流程我卻隱隱約約的可以了解一點點 ... cjz大神 當時的VBA程式碼解徹底決了我的問題 !


如今 11 年過去了,現在利用 ChatGPT 4o 幫忙寫出來的超神程式碼裡面,居然和當年 cjz大神 的程式碼有大幅度的類似 !! 這真的讓我很驚訝 !!

由其是 GPT 在寫搜尋子資料夾的方式,讓我感覺到有當年 cjz大神 的影子 !!


兩者程式碼的核心概念沒有變,但 GPT 寫得程式碼相對非常簡短,如果沒有經歷過 cjz大神 的年代,我想一般人應該是很難體會出 GPT 寫的這個程式碼有多麼厲害、有多麼強 !!


比較耐人尋味的是 cjz大神 和 GPT 都用了這段宣告語法:
【Set fso = CreateObject("Scripting.FileSystemObject")】
名稱都一模一樣,很有趣 ! 哈哈 !





cjz 大神 現在應該已經退休了 !!

在這裡藉這篇文章,想跟他說聲謝謝 !
謝謝您在當年的網路論壇上為大家提供這麼偉大的程式碼,在那時候幫我解決了工作上的問題 ! 感謝您 ~

PS:如果想索取 cjz 大神 在當時偉大的程式碼,
請在下方留言【+1】並附上您的 Email,我會在寄給您 ! 謝謝~






關鍵:

正規表達式(Regular Expression) - 這個強大的程式語言,我學了好多年都學不會也記不住的東西 ... 說它是外星人的程式語言也不為過 ! 但它真的好用 !!

要不是工作上的某個機緣,讓我重新學習與體驗到它的強大,真慶幸一直沒有放棄學習它的機會。


搜尋出來的檔案名稱是否有符合規則就靠它囉 !!




檔案下載 (免費下載)

PS:副檔名 xlsb,是微軟 Excel 的二進位活頁簿名稱。




彩蛋

  1. 凡事要有【格物致知】的精神 !
  2. 蘇軾在〈稼說送張琥〉中提到:【博觀而約取,厚積而薄發。】
  3. 【過時的事物】,如果不能將它轉化成經驗來學習或體驗【新穎的事物】,
    那就只是一般的回憶罷了,是非常可惜的!




參考文獻

  1. ChatGPT 4o - 將【特定檔案名稱】重新命名 (分享網址連結,請參考最下方。)
  2. Application.FileSearch在Office2007中被停用了
    https://blog.csdn.net/dihuo2799/article/details/101732987
  3. [VBA ] Application.FileSearch要怎麼改寫?
    https://www.ptt.cc/bbs/Visual_Basic/M.1412063010.A.BDD.html




以上就是這次的分享,請持續關注  和 Meiko微課頻道,謝謝大家 ~




有任何問題,請到【opa的沙龍】【Excel VBA 情境學習】一起討論有關 VBA 的問題,或加入 LINE社群 Meiko微課小綠群(粉絲交流群),歡迎您的加入。




在 ChatGPT 4o 中,
所發揮的我的【主人式 靈魂拷問】方法,

請參考以下網址:

我的GPT秘笈,付費即可解鎖!
本篇內容共 2732 字、0 則留言,僅發佈於Excel VBA 情境學習你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
內容總結
FileSystemObject
5
/5
avatar-img
25會員
18內容數
利用生活與工作情境來學習【Excel VBA + 函數】相關語法
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
opa的沙龍 的其他內容
這篇文章探討如何使用 VBA 來設計一個隨機生成不重覆的排班表,解決依據每日、每站、每人進行的排班需求。文章分享了設定人員、站點及工作日的基本步驟,並使用 AI - ChatGPT 4o 做為互動,最終產生了滿意的結果,並提供了一個 VBA設計完成 的影片 以及 免費的檔案下載。
5/5ChatGPT好神
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
5/5一技之長
這篇文章探討如何使用 VBA 來設計一個隨機生成不重覆的排班表,解決依據每日、每站、每人進行的排班需求。文章分享了設定人員、站點及工作日的基本步驟,並使用 AI - ChatGPT 4o 做為互動,最終產生了滿意的結果,並提供了一個 VBA設計完成 的影片 以及 免費的檔案下載。
5/5ChatGPT好神
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
5/5一技之長
本篇參與的主題活動
隨著科技的進步,我們正在目睹一項長久以來被視為基本的技能逐漸被淡化 — — 寫作。根據美國技術作家 Paul Graham的觀察,他預測:未來會形成「會寫作」和「不會寫作」的社會
隨著科技的進步,我們正在目睹一項長久以來被視為基本的技能逐漸被淡化 — — 寫作。根據美國技術作家 Paul Graham的觀察,他預測:未來會形成「會寫作」和「不會寫作」的社會
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
這篇文章探討如何使用 VBA 來設計一個隨機生成不重覆的排班表,解決依據每日、每站、每人進行的排班需求。文章分享了設定人員、站點及工作日的基本步驟,並使用 AI - ChatGPT 4o 做為互動,最終產生了滿意的結果,並提供了一個 VBA設計完成 的影片 以及 免費的檔案下載。
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
在工作職場上輸入資料時,如果輸入的內容可以觀察出特定的規則時,其實可以使用儲存格格式來快速輸入資料。 舉一個例子,再輸入學生班級時,三年二班要輸入4個字,【三】、【年】、【二】、【班】,但其實觀察一下規律,其中的年跟班都是相同的,那麼就能利用這個規則來偷吃步拉 📌設定儲存格格式 選取範圍
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
這篇文章介紹瞭如何使用VBA來控制Powerpoint,以及透過VBA控制Powerpoint的好處,包括動態資料的圖表簡報、改變表格底色、串接API等。文章強調了了解物件和屬性的關係後,就可以開始探索VBA控制Powerpoint的各種可能性。
Thumbnail
在職場上,我們經常需要使用 Excel 表格來處理資料,而自動格式設定可以幫助我們快速將資料整理成一致的格式,讓資料看起來更清晰、更有效率。用 Excel 的快捷鍵自動出現自動格式設定技巧,可以讓我們在更短的時間內套用自動格式,讓工作更輕鬆。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
這篇文章探討如何使用 VBA 來設計一個隨機生成不重覆的排班表,解決依據每日、每站、每人進行的排班需求。文章分享了設定人員、站點及工作日的基本步驟,並使用 AI - ChatGPT 4o 做為互動,最終產生了滿意的結果,並提供了一個 VBA設計完成 的影片 以及 免費的檔案下載。
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
在工作職場上輸入資料時,如果輸入的內容可以觀察出特定的規則時,其實可以使用儲存格格式來快速輸入資料。 舉一個例子,再輸入學生班級時,三年二班要輸入4個字,【三】、【年】、【二】、【班】,但其實觀察一下規律,其中的年跟班都是相同的,那麼就能利用這個規則來偷吃步拉 📌設定儲存格格式 選取範圍
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
這篇文章介紹瞭如何使用VBA來控制Powerpoint,以及透過VBA控制Powerpoint的好處,包括動態資料的圖表簡報、改變表格底色、串接API等。文章強調了了解物件和屬性的關係後,就可以開始探索VBA控制Powerpoint的各種可能性。
Thumbnail
在職場上,我們經常需要使用 Excel 表格來處理資料,而自動格式設定可以幫助我們快速將資料整理成一致的格式,讓資料看起來更清晰、更有效率。用 Excel 的快捷鍵自動出現自動格式設定技巧,可以讓我們在更短的時間內套用自動格式,讓工作更輕鬆。