如何將資料夾及其所有子資料夾中的檔案完整列出至工作表中?
當您在處理分散於多個資料夾與子資料夾中的大量檔案時,可能偶爾需要一份完整的檔案名稱清單,以便追蹤、編目或進行批次處理。然而,Excel 並未內建直接列出資料夾(含其子資料夾)中所有檔案名稱至工作表的功能。這項限制在資料夾結構複雜或檔案頻繁更新時尤為棘手。所幸,現已有實用且可靠的解決方案,能讓您在 Excel 中高效完成此任務。
本指南將為您介紹多種方法,可將所有檔案名稱(包含子資料夾中的檔案)直接匯出至 Excel 工作表,並提供詳盡的操作步驟、參數說明及避開常見錯誤的實用提示。這些解決方案不僅能簡化您的檔案管理流程,更能靈活配合各種專業或個人的組織需求。
使用適用於 Excel 的 Microsoft Power Query 快速輕鬆列出資料夾及子資料夾中的所有檔案名稱
使用 Kutools for Excel 快速輕鬆列出資料夾及子資料夾中的所有檔案名稱
使用適用於 Excel 的 Microsoft Power Query 快速輕鬆列出資料夾及子資料夾中的所有檔案名稱
在 Excel 近期版本中,可透過內建的「取得資料」功能(即適用於 Excel 的 Microsoft Power Query),從資料夾載入檔案清單,並一併包含所選屬性。
1. 前往資料 > 取得資料 > 從檔案 > 從資料夾。
2. 選取您要列出所有檔案的資料夾,然後點選開啟。
表格將列出所選資料夾及其子資料夾中的所有檔案。
3. 按一下載入/載入至,即可將清單載入工作表。
使用 Kutools for Excel 快速輕鬆列出資料夾及子資料夾中的所有檔案名稱
雖然 VBA 擅長生成簡單清單,但對於不熟悉程式碼或 Excel 巨集安全性設定的使用者來說,操作上可能較不方便。此外,若您不僅希望列出檔案名稱,還想同時顯示檔案大小、類型、建立或修改日期等詳細屬性,Kutools for Excel 增益集提供了直覺又強大的解決方案!
檔名目錄工具內建於 Kutools for Excel,只需點擊幾下滑鼠,即可快速從指定資料夾及其所有子資料夾中收集檔案資訊。此方法特別適合需要更高彈性的使用者,例如依文件類型篩選、建立超連結以利快速存取,或將隱藏的檔案與資料夾納入結果中。無論是管理文件歸檔、追蹤多媒體素材庫,還是為備份與稽核目的準備完整的資料盤點,這項功能都極具實用價值。請注意,執行下列步驟前,請先下載並安裝 Kutools for Excel。
完成安裝後,請依照下列步驟使用檔名目錄功能:
1. 按一下 Excel 工具列中的企業選項卡,選取匯入/匯出,再從選單中選擇檔名目錄,即可開啟設定對話方塊。

2. 在檔名目錄對話方塊中,您可以指定下列選項,依需求自訂文件列表:
A:點擊資料夾圖示
,選取您要掃描的資料夾。若有必要,此工具將自動包含子資料夾。
B:在文件類型區段中,選取「所有檔案」即可包含所有類型的檔案;若您僅對特定類型感興趣,也可直接指定副檔名(如 *.xlsx、*.docx 等)。
C:在文件大小的單位區段中,您可以選擇單位(例如 Bytes、KB、MB),讓所列出的檔案大小更易於理解。
注意:若要包含所有子資料夾中的檔案名稱,務必勾選包括子目錄內的文件選項。此外,若您也希望列出這些項目,可勾選包括隱藏文件和文件夾。選取建立超連結選項,將自動為每個檔案與資料夾產生可點擊的連結,讓您直接從工作表快速存取檔案,提升效率!若清單中缺少某些檔案,請確認您的篩選設定,並確保這些檔案未受權限或系統限制影響。

3. 按一下確定,即可產生文件列表。所選資料夾及其子資料夾中的所有檔案將顯示於新工作表上,並附帶所選檔案屬性(例如完整路徑、大小、類型、建立時間與修改時間),提供清晰且有條理的概覽。您還可運用 Excel 熟悉的篩選與排序功能,輕鬆掌握與管理資料!

使用 VBA 程式碼列出資料夾及子資料夾中的所有檔案名稱
預設情況下,Excel 並未內建可遞迴列出資料夾及其子資料夾中檔案的函數。不過,您可透過 VBA(Visual Basic for Applications)自動化此流程。善用 VBA,進階使用者便能擴充 Excel 功能,靈活自訂輸出內容——例如僅擷取檔案名稱,或一併包含檔案路徑等其他屬性。
此解決方案特別適合熟悉 VBA 編輯器、且需定期自動化類似文件清單作業的使用者;對於希望維持 Excel 環境簡潔、不願安裝任何增益集的人來說,同樣極具價值。但請注意,VBA 巨集必須在 Excel 中啟用巨集功能才能執行,而此功能在高安全性環境中可能受到限制。執行任何巨集前,務必先儲存您的活頁簿,以免因未儲存的變更造成資料遺失。
1. 建立或啟用一個新工作表,用來列出所有檔案名稱。請確保此工作表為空白,以免覆蓋重要資料。
2. 按下 ALT + F11,即可開啟 Microsoft Visual Basic for Applications(VBA)編輯器視窗。
3. 在 VBA 視窗中,點選功能表列的插入,再選擇模組,即可新增一個模組供您貼上 VBA 程式碼。
VBA 程式碼:列出資料夾及子資料夾中的所有檔案名稱
Sub MainList()
'Updateby Extendoffice
Set folder = Application.FileDialog(msoFileDialogFolderPicker)
If folder.Show <> -1 Then Exit Sub
xDir = folder.SelectedItems(1)
Call ListFilesInFolder(xDir, True)
End Sub
Sub ListFilesInFolder(ByVal xFolderName As String, ByVal xIsSubfolders As Boolean)
Dim xFileSystemObject As Object
Dim xFolder As Object
Dim xSubFolder As Object
Dim xFile As Object
Dim rowIndex As Long
Set xFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set xFolder = xFileSystemObject.GetFolder(xFolderName)
rowIndex = Application.ActiveSheet.Range("A65536").End(xlUp).Row + 1
For Each xFile In xFolder.Files
Application.ActiveSheet.Cells(rowIndex, 1).Formula = xFile.Name
rowIndex = rowIndex + 1
Next xFile
If xIsSubfolders Then
For Each xSubFolder In xFolder.SubFolders
ListFilesInFolder xSubFolder.Path, True
Next xSubFolder
End If
Set xFile = Nothing
Set xFolder = Nothing
Set xFileSystemObject = Nothing
End Sub
Function GetFileOwner(ByVal xPath As String, ByVal xName As String)
Dim xFolder As Object
Dim xFolderItem As Object
Dim xShell As Object
xName = StrConv(xName, vbUnicode)
xPath = StrConv(xPath, vbUnicode)
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.Namespace(StrConv(xPath, vbFromUnicode))
If Not xFolder Is Nothing Then
Set xFolderItem = xFolder.ParseName(StrConv(xName, vbFromUnicode))
End If
If Not xFolderItem Is Nothing Then
GetFileOwner = xFolder.GetDetailsOf(xFolderItem, 8)
Else
GetFileOwner = ""
End If
Set xShell = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
End Function
執行程式碼前,請務必先閱讀註解,以熟悉所使用的函數與變數。若您希望修改所列資料內容(例如完整路徑或檔案類型),可能需對程式碼進行相應調整。
4. 將程式碼貼上模組視窗後,按下 F5 鍵以執行程式碼。此時會出現巨集對話方塊;請選取 MainList 巨集名稱,並按一下執行。若您有其他名稱相似的巨集,務必確認選取正確的項目!

5. 在出現的瀏覽對話方塊中,導覽並選取您要列出檔案與子資料夾的目標資料夾。選擇正確的起始資料夾至關重要,因為巨集將遞迴掃描所有巢狀子資料夾,完整擷取其中的檔案!

6. 指定所需資料夾後,請按一下確定。巨集將處理該資料夾及其所有子目錄,並將所有檔案名稱的清單輸出至當前工作表,從儲存格 A2 開始。根據檔案數量與子資料夾結構的深度,此程序可能需要數秒或更長時間。所產生的清單可讓您一目了然掌握資料夾內容!
![]() |
![]() |
![]() |
若出現錯誤,請再次確認所選資料夾確實存在且包含檔案,並確保 Excel 安全性設定中已啟用巨集。若您處理的是大型資料夾結構或網路磁碟機,處理時間可能較長,甚至可能發生逾時或記憶體錯誤;若遇此情況,建議您改對較小的子資料夾執行巨集。
雖然 VBA 在處理基本檔案清單時表現出色,但預設情況下通常不會擷取檔案大小、修改日期或檔案擁有者等屬性。若您需要這些額外的詳細資訊,建議您調整程式碼,或採用下方所述的替代方案。
為確保最佳成效,請定期檢閱並更新您的文件清單,特別是在資料夾內容經常變動的情況下。掃描網路位置或共用磁碟機時,務必確認您已具備必要權限。若出現非預期結果,請檢查是否存在隱藏檔案、同步延遲或檔案存取限制等問題。若檔案或資料夾遭跳過,請嘗試以系統管理員身分執行 Excel,或改用更簡化的資料夾結構。
選擇最適合的方法,取決於您對工具的熟悉程度、特定需求,以及執行此任務的頻率。每種方法各有優勢:您可以運用 VBA 進行高度自訂、借助 Kutools 享受便捷操作與更多功能選項,或直接使用 Windows/Excel 內建功能,獲得無需額外工具的簡易解決方案。若問題持續存在,請參閱 Excel 或系統說明文件以進一步排除故障。
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用


