跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何将文件夹及其子文件夹中的所有文件列到工作表中?

Author Xiaoyang Last modified

在处理存储在不同文件夹和子文件夹中的大量文件时,有时您可能需要生成所有文件名的综合列表,以用于跟踪、编目或批量处理。然而,Excel 并未提供直接内置的功能来将文件夹(包括其子文件夹)中的所有文件名列到工作表中。这一限制可能会带来挑战,特别是当文件夹结构复杂或文件经常更新时。幸运的是,有一些实用且可靠的方法可以在 Excel 中高效完成此任务。

在本指南中,您将发现几种方法,可以将所有文件名(包括子文件夹中的文件名)直接列到 Excel 工作表中,同时还会详细介绍操作步骤、参数说明以及避免常见问题的技巧。这些解决方案将帮助简化您的文件管理流程,并可适应各种专业或个人组织任务。

使用 Power Query 快速轻松地列出文件夹及子文件夹中的所有文件名

使用 Kutools for Excel 快速轻松地列出文件夹及子文件夹中的所有文件名

使用 VBA 代码列出文件夹及子文件夹中的所有文件名


使用 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:单击文件夹图标 a screenshot of the folder icon 选择要扫描的文件夹。如果需要,该工具将自动包括子文件夹。

B:在 文件类型 部分,选择 “所有文件” 以包括每种类型的文件,或者指定特定的文件扩展名(如 *.xlsx、*.docx 等),如果您只对某些类型的文件感兴趣。

C:在 文件大小单位 部分,您可以选择单位(如字节、KB、MB)以更易于理解的方式列出文件大小。

注意:要包括所有子文件夹中的文件名,请务必勾选 包括子目录内的文件 选项。此外,如果您希望列出隐藏文件和文件夹,可以勾选 包括隐藏文件和文件夹。选择 创建超链接 选项会自动生成每个文件和文件夹的可点击链接,有助于从工作表中快速访问文件。如果列表中缺少任何文件,请确认您的筛选条件,并确保文件没有受到权限或系统限制的影响。

a screenshot of configuring the Filename List dialog box

3. 单击 确定 生成文件列表。所选文件夹及其子文件夹中的所有文件将显示在新工作表中,连同选定的文件属性(如完整路径、大小、类型、创建和修改日期)。这提供了清晰且有条理的概览,您可以使用 Excel 熟悉的筛选和排序功能进一步管理数据。

a screenshot listing the details of files of the selected folder

点击了解更多关于此 文件名列表 工具的详细信息。

立即下载并试用 Kutools for 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 宏名称并单击 运行。如果您有另一个类似命名的宏,请确保选择正确的那个。

a screenshot of running the VBA code

5. 在出现的 浏览 对话框中,导航并选择目标文件夹,您希望列出其中的文件和子文件夹。选择正确的起始文件夹很重要,因为宏将递归检索所有嵌套子文件夹中的文件。

a screenshot of selecting the folder you want to list all filenames including the subfolders

6. 指定所需的文件夹后,单击 确定。现在,宏将处理文件夹及其所有子目录,并将所有文件名输出到当前工作表,从单元格 A2 开始。根据文件数量和子文件夹结构的深度,此过程可能需要几秒或更长时间。生成的列表提供了文件夹内容的详细视图。

a screenshot of the seleted folder
a screenshot of an arrow
a screenshot listing all filenames from the selected folder and its subfolders

如果收到错误,请仔细检查所选文件夹是否存在并包含文件,并确保在 Excel 安全设置中启用了宏。如果您正在处理大型文件夹结构或网络驱动器,处理时间可能会增加,并且可能会收到超时或内存错误——如果发生这种情况,尝试在较小的子文件夹上运行宏。

虽然 VBA 在基本文件列表方面效率很高,但它通常不会默认捕获文件大小、修改日期或文件所有者等属性。如果您需要这些额外的详细信息,请考虑编辑代码或使用下面描述的替代方法。


为了获得最佳效果,定期审查和更新您的文件列表,尤其是当文件夹的内容频繁更改时。始终确认您具有必要的权限,特别是在扫描网络位置或共享驱动器时。如果遇到意外结果,请检查隐藏文件、同步延迟或文件访问限制等问题。如果跳过文件或文件夹,请尝试以管理员身份运行 Excel 或使用简化的文件夹结构。

选择最佳方法取决于您的熟悉程度、具体要求以及执行任务的频率。每种方法都有其优势——您可以使用 VBA 进行定制,使用 Kutools 实现便捷和更多属性,或者使用 Windows/Excel 内置功能作为无需外部工具的最简单解决方案。如果问题持续存在,请查阅 Excel 或系统文档以获取更多故障排除信息。

最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件VLookup|多值VLookup|多表查找|模糊查找……
高级下拉列表快速创建下拉列表 |依赖下拉列表 | 多选下拉列表……
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列……
特色功能网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)……
15大工具集12项 文本工具添加文本删除特定字符等)|50+种 图表 类型甘特图等)|40+实用 公式基于生日计算年龄等)|19项 插入工具插入二维码从路径插入图片等)|12项 转换工具小写金额转大写汇率转换等)|7项 合并与分割工具高级合并行分割单元格等)| ……
Kutools支持多种语言——可选择英语、西班牙语、德语、法语、中文等40多种语言!

通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……


Office Tab为Office带来多标签界面,让您的工作更加轻松

  • 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

Excel Word Outlook Tabs PowerPoint
  • 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
  • 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
  • 协同更高效——提升Office应用间的整体工作效率
  • 30天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠