如何将文件夹及子文件夹中的所有文件列到工作表中?
您是否尝试过将文件夹中的所有文件名列到工作表中,包括其子文件夹中的文件?实际上,在Excel中没有直接的方法可以列出文件夹及其子文件夹中的文件名。然而,今天我将介绍一些快速技巧来解决这个问题。
使用Kutools for Excel快速轻松地列出文件夹和子文件夹中的所有文件名
使用VBA代码列出文件夹和子文件夹中的所有文件名
通常,Excel没有内置功能来处理此任务,但您可以应用以下VBA代码来完成此问题。
1. 激活一个新工作表以列出文件名。
2. 在Excel中按住ALT + F11键,打开Microsoft Visual Basic for Applications窗口。
3. 单击插入 > 模块,并将以下代码粘贴到模块窗口中。
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开始列在当前工作表中,参见截图:
![]() |
![]() |
![]() |
使用Kutools for Excel快速轻松地列出文件夹和子文件夹中的所有文件名
通过上述代码,您只能列出文件名,有时您需要列出其他属性,例如文件大小、文件类型、创建时间、所在文件夹等。Kutools for Excel包含一个有用的功能——文件名目录,使用此功能,您可以快速列出文件夹及其子文件夹中的所有或特定类型的文件名。
下载并安装 Kutools for Excel后,请按照以下步骤操作:
1. 单击企业 > 导入与导出 > 文件名目录,参见截图:
2. 在文件名目录对话框中,执行以下操作:
A: 单击 按钮以选择要列出文件名的文件夹;
B: 从文件类型部分指定要列出的文件类型;
C: 从文件大小单位部分选择要显示的一个文件大小单位。
注意:要列出子文件夹中的文件名,请勾选包括子目录内的文件,您还可以根据需要勾选包括隐藏文件和文件夹。如果勾选创建超链接选项,它将为每个文件名和文件夹创建超链接。
3. 然后单击确定按钮,所选文件夹及其子文件夹中包含的所有文件都已在新工作表中显示了以下属性。参见截图:
最佳 Office 办公效率工具
🤖 | Kutools AI 助手:基于智能执行,彻底革新数据分析 |生成代码|创建自定义公式|分析数据并生成图表|调用 Kutools Functions… |
热门功能:查找、选中项的背景色或标记重复项|删除空行|合并列或单元格且不丢失数据|四舍五入(无公式)... | |
高级 LOOKUP:多条件查找 (VLookup)|多值查找 (VLookup)|多表查找 (VLookup Across Multiple Sheets)|模糊查找 (Fuzzy Lookup)... | |
高级下拉列表:快速创建下拉列表|依赖型下拉列表|多选下拉列表... | |
列管理器:添加指定数量的列 |移动列 |切换隐藏列的可见状态| 比较区域及列... | |
特色功能:网格聚焦|设计视图|增强编辑栏|工作簿 & 工作表管理器|资源库(自动文本)|日期提取|合并数据|加密/解密单元格|按列表发送电子邮件|超级筛选|特殊筛选(筛选粗体/倾斜/删除线等)... | |
热门15 大工具集:12 款文本工具(添加文本、删除特定字符等)|50+ 种图表 类型(甘特图等)|40+ 实用公式(基于生日计算年龄等)|19 款插入工具(插入二维码、按路径插入图片等)|12 种转换工具(小写金额转大写、汇率转换等)|7 款合并与分割工具(高级合并行、分割单元格等)|...更多精彩等你发现 |
用 Kutools for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...
Office Tab 为 Office 带来标签式界面,让你的工作更加轻松
- 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
- 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
- 办公效率提升50%,每天帮你减少上百次鼠标点击!