如何将文件夹及其所有子文件夹中的文件完整列出到工作表中?
当面对分散在多个文件夹及子文件夹中的大量文件时,您可能需要生成一份完整的文件名列表,以便跟踪、编目或进行批量处理。然而,Excel 并未内置直接功能,可将指定文件夹(包括其所有子文件夹)中的文件名一键列出到工作表中。这一限制在文件夹结构复杂或文件频繁更新时尤为棘手。幸运的是,Excel 中仍有一些实用且可靠的方法,能高效完成这项任务。
本指南将为您介绍多种方法,可将所有文件名(包括子文件夹中的文件)直接导入 Excel 工作表,并提供详细的操作步骤、参数说明及避坑提示。这些高效解决方案不仅能简化您的文件管理流程,还能灵活应对各类专业或个人整理任务。
使用 Power Query 快速轻松地列出文件夹及子文件夹中的所有文件名
使用 Kutools for Excel 快速轻松地列出文件夹及子文件夹中的所有文件名
使用 Power Query 快速轻松地列出文件夹及子文件夹中的所有文件名
在较新版本的 Excel 中,可利用内置的“获取数据”(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:在文件大小的单位部分,您可以选择字节、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 或系统官方文档,获取进一步的故障排除建议。
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 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、Publisher、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 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱


