excel快速提取文件名?

时间:2025-03-28 00:49:07 爱情句子

一、使用文件名函数(适用于Excel 2016及以上版本)

FILE函数配合INDEX函数

在单元格输入`=INDEX(FILES("D:\路径\*.xlsx"),ROW(1))`(需替换为实际路径),拖动填充柄批量生成文件名。

Power Query(仅限Excel 2016+)

- 通过【数据】→【获取数据】→【自文件】→【自文件夹】导入文件,删除不需要的列后直接输出到Sheet1。

二、使用VBA宏(适用于高级用户)

基础VBA代码

```vba

Sub ListFileNames()

Dim folderPath As String

Dim fileName As String

Dim i As Long

folderPath = "D:\ExcelFiles\" ' 修改为实际路径

If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"

fileName = Dir(folderPath & "*.xlsx")

i = 1

Do While fileName <> ""

ThisWorkbook.Sheets("Sheet1").Cells(i, 1).Value = fileName

i = i + 1

fileName = Dir

Loop

End Sub

```

- 运行该宏可将文件名写入Sheet1的A列。

三、使用Excel自带功能(简单快捷)

Power Query导入

- 通过【数据】→【获取数据】→【自文件夹】导入文件,选择Excel格式,直接导出为表格。

- 若需去除扩展名,导入后使用【数据】→【分列】功能,按固定宽度或分隔符拆分。

手动操作(小文件)

- 选中多个文件后复制路径,粘贴到Excel后使用【Ctrl+E】智能填充提取文件名。

四、使用第三方工具(高效批量处理)

Bulk Rename Utility:

支持批量重命名文件,可批量提取文件名并生成列表。

Folder Opus:提供文件管理功能,可快速导出文件名到Excel。

注意事项

路径格式:确保文件夹路径使用英文双引号包裹,且包含通配符时需使用反斜杠(如`D:\ExcelFiles\*.xlsx`)。

权限问题:运行VBA宏需确保启用了【开发工具】选项卡。

扩展名处理:若需纯文件名(不含扩展名),可在导入后使用【数据】→【分列】功能删除`.xlsx`后缀。

以上方法可根据文件数量、Excel版本及操作习惯灵活选择,高效完成批量文件名提取。