打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
EXCEL中VBA批量改名更轻松

导读:在Excel中利用VBA可以轻松快捷地对批量文件进行重新命名。

实例描述:小姚是车间的计算机管理员,他有一项工作是负责给员工照相。最近,他接到了一个任务,要求他把在E盘的照片文件夹中存放有以员工档案号命名的员工照片根据Excel工作表中的记录以队组号加姓名的方式重新命名,并且按队组分好(图1)。

图1

实例分析:在实例中有1000多条记录和1000多个照片文件,那对于小姚的任务,如果我们对照工作表一个个在照片文件夹中更改,我们的工作量是可想而知的。有没有什么办法能够轻轻松松的帮助小姚完成这项任务呢?当然有,我们只需在Excel中编写几句VBA语句,就可以在几秒钟内轻松完成任务。如果你想知道,这项任务是怎么完成的,就跟我来吧!

编写VBA代码

这个过程主要是在Excel中编写VBA代码,通过代码判断照片是否存在,如果存在则用Name命令对照片文件进行重命名。

首先,打开Excel 2003,点击“工具→宏→Visual Basic编辑器”菜单,这时就会弹出Microsoft Visual Basic程序窗口,也就是VBA的编辑器。在VBA编辑器窗口中选择“插入→模块”菜单,这时在右侧可以看到空白的代码编辑区域,我们可以尝试着输入图中代码(图2)。(下载地址:http://iask.sina.com.cn/u/ish?uid=1704202287)

图2

在上述代码中,只用了一个过程“照片重命名”。在这个过程中,首先用Dim命令定义了oldname、newname、photopath、nophoto、i这5个变量,分别用于临时存放旧文件名、新文件名、照片文件夹、错误提示及循环变量。图中方框①处的作用是调出文件夹选择窗口,并把选择的文件夹赋给变量photopath。接下来,利用MsgBox函数进行了人性化的人机交流,询问是否对文件进行重命名,如果是程序继续执行,否则退出过程。图中方框②处利用FOR…NEXT循环语句来读取工作表中的每条记录,Worksheets("照相顺序表").Range("a65536").End(xlUp).Row表示从A65536这个单元格向上的非空单元格,即工作表中所使用的总行数;.Range("a" & i)表示单元格中的值。代码中用newname变量取得单元格的值,即新文件名,用oldname变量取得C列单元格的值,即旧文件名,然后用Dir函数进行判断是否存在以旧文件名命名的文件,如果存在则用Name命令进行重新命名,如果不存在则把错误信息给变量nophoto,最后用MsgBox函数显示错误信息。

为按钮添加事件

为了操作方便我们可把上面我们编写的过程放到一个按钮上。首先,我们在Excel中选择“视图→工具栏→窗体”菜单,在“窗体”工具栏上点击“按钮”,按住鼠标左键根据需要拖出一个按钮。在弹出的“指定宏”的窗口中,我们选择过程“照片重命名”,点击确定后退出。最后,在按钮的标签处单击,修改按钮的标签,如更改为“文件重命名”(图3)。

图3

激活VBA代码

要想使这些事件即VBA代码起作用,我们需要调整宏的安全性。选择“工具→宏→安全性”,把宏的安全性设置为“低”,这样你才能顺利的运行VBA代码。点击“文件重命名”按钮,就会发现“照片”文件夹中的文件名字已改成了队组编号加姓名的方式了(图4)。

图4

对照片文件夹中的文件重新命名之后,我们可以在文件夹中右击,选择“排列图标→名称”菜单,将文件按照名称重新排列,这时就会把同一个队组的文件放到一起了,我们可以把它们移动到相应的队组文件夹中,就相应地完成了按队组分类。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vba批量重命名文件
使用VBA复制文件:5个示例代码
VBA封装为DLL及调用
零基础学Excel VBA-WE003 【VBA必修课,数据提取】
VBA常用小代码207:批量工作簿重命名
老板发来一堆Excel表格要改名,崩溃了!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服