Excel VBA实例(48) – 按excel表格内容批量重命名文件

作品简介

点击下方红字获取VBA实例完整代码文件(建议使用PC端浏览查看和下载,常见问题查看这里


================

VBA实例系列,最新更新到48个,点击下方链接进行查看:

https://mbd.pub/o/bread/mbd-YZ6Wlp5t


大家好,我是爱分享的永恒君!

今天分享一个日常有可能会需要使用到的批量文件重命名实例。

如下图,图片左边有一批不同类型的文件需要重新命名,

而命名的方式则是按照右边 excel 里面文件名的序列,将序号加在原文件之前。

例如,大波.doc,在 excel 中序号为11,则将原来文件名大波.doc更改为11大波.doc

最终更改完成的效果如下:


思路

1、遍历文件夹内所有的文件,获取文件的名字。

使用Dir()函数即可获取到文件夹内所有文件的名字。

Dir(m)

但是这里获取到的是带扩展名的名字,如大波.doc。需要剔除掉扩展名.doc,可以使用split()函数,构造类似如下的函数:

myname = Split(myfullname, ".")(0)

即可获取到大波

2、依次将文件的名字在excel中进行查找,匹配到对应的序列号,并构造新的文件名。

Excel 中查找匹配大波对应的序列,使用Find()函数即可,找到大波对应的单元格,向左偏移一个单元格,即为对应序列11

Range("B1:B100").Find(myname).Offset(0, -1)

然后使用连接符 &将序列和原文件名拼接在一起,构造成新的名字11大波即可。

3、用新的文件名对旧的文件名进行替换。

这里就简单了,使用 Name() 函数

效果展示


说明

1、其实解决这个问题还有很多其他的方式,如使用python、bat批处理等,但是 VBA 应该是最方便的一种了。

2、以上只是介绍该实例及方法,如果你也恰好有这个需求的话,直接使用即可。excel 列表的内容可以根据你的实际需求进行添加、删除。

3、如果发现错误,需要将文件名的序列号删除的话,这里 VBA 也是可以的,但是有现成的工具可以使用,永恒君就偷懒没有写了。

可以使用 Renamer 这个重命名文件的神器,一键即可搞定。


关于 Renamer 这个神器,后续永恒君还会分享更详细、更高级的玩法。

好了,以上就是今天的分享。


点击下方红字进行查看。(建议使用PC端浏览查看和下载,常见问题查看这里


创作时间: