怎么批量修改文件名-高级篇
1、准备工作:新建一个空白的Excel表格打开:
1.显示 “开发工具” 栏
2.启用宏
具体操作如下图:
注意:如果打开的excel表格有 “开发工具”这一栏并已经启用宏运行的可以跳过这一步。





2、选择 开发工具栏 ,打开vba编辑界面,如下图:



3、插入一个新模块,并在以下VBA代码复制黏贴进去:
'==========================================
Sub 批量获取文件夹里文件名称()
myPath = "C:\Users\Administrator\Desktop\百度经验\测试" '把文件路径
n = 2
Cells(1, 1) = "原文件名"
Cells(1, 2) = "新文件名"
Cells(1, 3) = "实际改后文件名"
myFile = Dir(myPath & "\*.*")
Do While myFile <> ""
Cells(n, 1) = myFile
myFile = Dir '找寻下一个文件
n = n + 1
Loop
End Sub
Sub 批量改名()
Dim obj As Object '定义obj为变量对象
Dim fld, ff '定义fld,ff,gg为变量
Dim count!, endL!, index!
Dim preFix As String, syfFix As String
preFix = "" '前缀
syfFix = "" '后缀
myPath = "C:\Users\Administrator\Desktop\百度经验\测试" '把文件路径
Set obj = CreateObject("Scripting.FileSystemObject") '定义变量
Set fld = obj.getfolder(myPath)
endL = Range("a1000").End(xlUp).Row '获取表A列有数据的总行数
For Each ff In fld.Files '遍历文件夹里文件
For count = 2 To endL
If Cells(count, 1) = ff.Name Then
index = InStr(ff.Name, ".") - 1 '后缀名点所在位置
If index = -1 Then
index = Len(ff.Name)
End If
On Error Resume Next
ff.Name = preFix & Cells(count, 2) & syfFix & Right(ff.Name, (Len(ff.Name) - index))
If Err.Number = 58 Then '文件已经存在处理
ff.Name = preFix & Cells(count, 2) & syfFix & "(已经存在同名文件)" & Right(ff.Name, (Len(ff.Name) - index))
End If
Cells(count, 3) = ff.Name
Exit For
End If
Next
Next
For Each ff In fld.Files
For count = 2 To endL
If Cells(count, 3) = ff.Name Then
ff.Name = Replace(ff.Name, "(已经存在同名文件)", "")
Cells(count, 3) = ff.Name '显示修改后的名称
End If
Next
Next
End Sub
'==========================================


4、修改文件路径:
1.将你要修改的文件放在同一个文件夹中
2.将VBA代码中的文件路径,修改成你的文件文件夹路径
注意:两个地方的文件路径都要改

5、到此所以的准备工作已经完成了,接下来我们就可以随心所欲的批量修改我们的文件名称了。
1.先运行 批量获取文件夹里文件名称() ,按F5或者工具栏的运行按钮运行
运行后,会将文件夹里面的所以文件名称,显示到excel表的第一列,如图所示:


6、利用excel编辑的方便性,在对应的列下面输入新的文件名,运行 批量改名() 就可以完成改名的操作了。
注意:文件的后缀名(.mp3、.jpg、.txt等)不需要在 新文件名 列输入,vba代码里面已经自动判断好了。


7、如果要在新的文件名 前面或后面 添加固定的文件名标识,可以在vba代码里面修改:
preFix = "" '前缀
syfFix = "" '后缀


