登录
首页 >  文章 >  软件教程

Excel批量提取文件名方法详解

时间:2026-05-23 19:16:20 215浏览 收藏

在Excel中批量提取文件夹内所有文件名,无需手动输入,有四种高效实用的方法:Power Query一键导入并筛选、CMD命令生成文本再导入、VBA宏自动遍历写入、以及Office 365/2021专属的动态数组公式+自定义函数组合方案——无论你追求操作简洁、系统原生支持、高度自动化,还是灵活适配多变路径,总有一种方法能精准匹配你的需求与Excel版本,大幅提升文件管理效率。

Excel怎么批量提取文件名 Excel如何获取文件夹下所有文件名列表【工具】

如果您需要在Excel中快速获取指定文件夹下所有文件的名称列表,而不想手动逐个输入,可以通过多种方式实现批量提取。以下是几种常用且有效的操作方法:

一、使用Power Query导入文件夹内容

Power Query是Excel内置的数据获取与转换工具,可直接连接到文件系统并自动列出目标文件夹中的全部文件名及其属性。

1、打开Excel,切换到【数据】选项卡,点击【获取数据】→【从文件】→【从文件夹】。

2、在弹出窗口中,输入目标文件夹的完整路径,或点击浏览按钮选择该文件夹,然后点击【确定】。

3、Power Query编辑器将加载该文件夹内所有文件的元数据表,其中包含Name列(即文件名)和Extension列等。

4、删除不需要的列(如Content、Date accessed等),仅保留Name列。

5、点击【关闭并上载】,结果将自动导入当前工作表的A列起始位置。

二、利用CMD命令生成文件名文本再导入Excel

通过Windows命令提示符调用dir命令,可将指定路径下的所有文件名导出为纯文本文件,随后以文本格式导入Excel。

1、按Win+R键,输入cmd并回车,打开命令提示符窗口。

2、输入命令:cd /d D:\目标文件夹路径(将D:\目标文件夹路径替换为实际路径)。

3、执行导出命令:dir /b > filenames.txt,该命令会生成一个只含文件名(不含路径和扩展名)的文本文件。

4、若需包含扩展名,改用:dir /b /a-d > filenames.txt

5、在Excel中,选择【数据】→【从文本/CSV】,定位并导入filenames.txt文件,选择“分隔符号”为无,完成导入。

三、使用VBA宏自动遍历并写入文件名

VBA脚本可直接在Excel内部调用文件系统对象,无需外部工具或手动导出,适合重复性高、路径常变的操作场景。

1、按Alt+F11打开VBA编辑器,插入新模块(右键项目→插入→模块)。

2、粘贴以下代码:

Sub ListFilesInFolder()

Dim fso As Object, folder As Object, file As Object

Dim ws As Worksheet: Set ws = ActiveSheet

Dim path As String: path = "D:\目标文件夹路径"

Set fso = CreateObject("Scripting.FileSystemObject")

Set folder = fso.GetFolder(path)

ws.Cells.Clear

ws.Range("A1").Value = "文件名"

Dim i As Integer: i = 2

For Each file In folder.Files

ws.Cells(i, 1).Value = file.Name

i = i + 1

Next file

End Sub

3、修改代码中path = "D:\目标文件夹路径"为实际文件夹路径。

4、按F5运行宏,当前工作表将自动生成从A1开始的文件名列表。

四、借助Excel公式配合DIR函数(适用于Office 365/Excel 2021动态数组版本)

在支持SEQUENCE和FILTERXML等新函数的版本中,可通过组合公式间接调用系统命令获取文件名,但需启用宏支持并配置信任中心设置。

1、确保已启用【开发工具】选项卡,并在【Excel选项】→【信任中心】→【信任中心设置】→【宏设置】中勾选“启用所有宏”(仅限可信环境)。

2、按Alt+F11进入VBA编辑器,在【插入】→【模块】中新建模块,输入以下函数:

Function GetFileList(path As String) As Variant

Dim shell As Object, exec As Object, output As String

Set shell = CreateObject("WScript.Shell")

Set exec = shell.Exec("cmd /c dir """ & path & "\*.*"" /b /a-d")

output = exec.StdOut.ReadAll

GetFileList = Split(output, vbCrLf)

End Function

3、返回Excel,在A1单元格输入公式:=GetFileList("D:\目标文件夹路径"),按Enter后自动溢出填充全部文件名。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>