导语:

工作中常常遇到对大量文件重命名的情况。有事需要给文件加上变化,有事需要给文件加上人名或日期。文件少一些,可以用快捷键F2手动改一下文件多的话,就比较费时费力了。网上有一些重命名的软件,也都是挂买了各式各样的捆绑,安装完,桌面上挂满了各式各样的游戏广告。今天小编带大家用电脑上常用的EXCEL(或者WPS,需要安装VBA 7.0 for WPS )对批量文件重命名。

先看下效果:

excelvba复制已定义名称内容(EXCELVBA零基础教程用EXCEL对文件快速重命名)(1)

VBA代码:

Sub 删除文件名中的特定字符()

‘删除文件命中的<死亡次数>四个字

Set fso = CreateObject("scripting.filesystemobject") '设置FSO对象

Set ff = fso.getfolder("D:\今日头条\测试\") ' 获取文件夹对象

For Each file In ff.Files ' 遍历文件夹内所有文件

file.Name = Replace(file.Name, "死亡次数", "")

Next

End Sub

在特定位置添加特定字符串
  • 在文件开始位置

excelvba复制已定义名称内容(EXCELVBA零基础教程用EXCEL对文件快速重命名)(2)

Sub 添加文件名中的特定字符()

Set fso = CreateObject("scripting.filesystemobject") '设置FSO对象

Set ff = fso.getfolder("D:\今日头条\20180516\测试") ' 获取文件夹对象

For Each file In ff.Files ' 遍历文件夹内所有文件

file.Name = "王者荣耀" file.Name

Next

End Sub

  • 在文件末尾位置

excelvba复制已定义名称内容(EXCELVBA零基础教程用EXCEL对文件快速重命名)(3)

Sub 添加文件名中的特定字符1()

Set fso = CreateObject("scripting.filesystemobject") '设置FSO对象

Set ff = fso.getfolder("D:\今日头条\20180516\测试") ' 获取文件夹对象

For Each file In ff.Files ' 遍历文件夹内所有文件

exc = fso.getextensionname(f) '获取文件扩展名

file.Name = Replace(file.Name, "." exc, "程咬金制作" "." exc)

' 用替换操作在末尾加字符串

Next

End Sub

  • 在文件名中插入特定字符。

excelvba复制已定义名称内容(EXCELVBA零基础教程用EXCEL对文件快速重命名)(4)

Sub 添加文件名中的特定字符2()

Set fso = CreateObject("scripting.filesystemobject") '设置FSO对象

Set ff = fso.getfolder("D:\今日头条\20180516\测试") ' 获取文件夹对象

For Each file In ff.Files ' 遍历文件夹内所有文件

file.Name = Left(file.Name, 18) "----" Right(file.Name, (Len(file.Name) - 18))

Next

End Sub

替换文件命中的特定字符串

excelvba复制已定义名称内容(EXCELVBA零基础教程用EXCEL对文件快速重命名)(5)

Sub 替换文件名中的特定字符()

Set fso = CreateObject("scripting.filesystemobject") '设置FSO对象

Set ff = fso.getfolder("D:\今日头条\20180516\测试") ' 获取文件夹对象

For Each file In ff.Files ' 遍历文件夹内所有文件

file.Name = Replace(file.Name, "鲁班", "狄仁杰")

Next

End Sub

文件夹修改,和文件名修改一样

只需要将

For Each file In ff.Files ' 遍历文件夹内所有文件

file.Name = Replace(file.Name, "鲁班", "狄仁杰")

Next

改为:

For Each file In ff.SubFolders' 遍历文件夹内所有文件夹

file.Name = Replace(file.Name, "鲁班", "狄仁杰")

Next

excelvba复制已定义名称内容(EXCELVBA零基础教程用EXCEL对文件快速重命名)(6)

Sub 添加文件夹名中的特定字符()

'在文件夹名称前加<王者荣耀>

Set fso = CreateObject("scripting.filesystemobject") '设置FSO对象

Set ff = fso.getfolder("D:\今日头条\20180516\测试2") ' 获取文件夹对象

For Each file In ff.SubFolders ' 遍历文件夹内所有文件

file.Name = "王者荣耀" file.Name

Next

End Sub

知识点汇总
  1. FSO文件操作使用方法,不会用的话,可直接复制代码。改下文件夹路径就可以了。

  2. 文中所用的的重命名方式基本上都是使用的 字符串操作。

  • ” “,代表字符连接, "王者荣耀" file.Name,就代表在前面加 "王者荣耀" 四个字。

  • Replace:和EXCEL表格中的替换(Ctrl)操作类似。Replace(原始字符串,"被替换的串",“替换的字符串”)。删除就是将特定字符串替换为“”。

  • Left、Right、Mid 这三个是左、右、中截取字符串。结合Len,获取字符长度,能够截取到任何位置的字符串。这四个EXCEL公式中有类似的用法,同学们百度一下,或者直接使用下EXCEL的公式就知道怎么用了。

总结:上面的代码都是可以直接拿来用的,只需要修改下“文件夹路径”和替换的文字就可以了。用多了就会使用VBA处理文件了(用进废退)。如果修改的文件名要求较高,则需要添加IF判断语句或其他逻辑语法,来达到更高的要求。
大家觉得还不错的话,还请关注、转发、收藏。本期VBA文件源码,加关注,回复“重命名”即可获得。

excelvba复制已定义名称内容(EXCELVBA零基础教程用EXCEL对文件快速重命名)(7)

,