办公问答网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 70|回复: 1

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

[复制链接]

2

主题

11

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2023-1-12 11:17:57 | 显示全部楼层 |阅读模式
大家好,我是爱分享的永恒君!
今天分享一个日常有可能会需要使用到的批量文件重命名实例。
如下图,图片左边有一批不同类型的文件需要重新命名,
而命名的方式则是按照右边 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 这个神器,后续永恒君还会分享更详细、更高级的玩法。
好了,以上就是今天的分享,如果你感兴趣的话, 按下图方式获取即可进行试用~



我是@奔跑吧永恒君专注分享python、Office等效率提升的工具、技巧!
手工码文不易,如果觉得有用的话,别忘记

一个点赞,一个关注,鼓励一下。
回复

使用道具 举报

0

主题

7

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2025-6-14 13:34:38 | 显示全部楼层
我也顶起出售广告位
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|办公问答网

GMT+8, 2025-7-4 09:40 , Processed in 0.087779 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc. Templated By 【未来科技 www.veikei.com】设计

快速回复 返回顶部 返回列表