首页 > 范文大全 > 正文

EXCEL中应用VBA实现图片的批量命名

开篇:润墨网以专业的文秘视角,为您筛选了一篇EXCEL中应用VBA实现图片的批量命名范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要 Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic Script。本文着重介绍运用VBA在excel中实现对图片文件的批量命名。

关键词 VBA 宏语言 批量命名

中图分类号:TP391.1文献标识码:A

0 引言

在大学学生管理中,我们经常会遇到这样的问题,我们对学生进行图像信息采集的时候,图像采集完了,但是文件名称并没有达到我们的要求。比如我们要求用学生的身份证号码来命名对应学生的照片。如果按照原始的重命名方式为每个文件重命名,工作效率是相当低的。那么,有没有一种好的办法抛开原始的重命名方式,实现图片的批量命名呢?带着这个问题,我们首先想到了VBA,利用VBA能够很好地解决此问题。

1 什么是VBA

Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic Script。例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等。

2 在EXCEL中应vba实现图片文件的批量命名

在某EXCEL表中,有A,B两列数据( A:姓名,B:身份证号码);某文件夹中,有一批以此excel表中的姓名命名的照片。现在需要用相对应的身份证号重命名这批照片,我们用VBA来实现。

利用VBA实现图片批量重命名步骤:(1)利用消息框提示用户选择需要重命名文件所在的文件夹在磁盘中的位置。(2)判断指定文件夹中的文件是否存在。(3)如果存在判断文件名称是否和EXCEL表中某一列数据相对应(本例中,文件夹中图片是以EXCEL表中的姓名命名的)。(4)遍历EXCEL表中姓名列判断是否与文件夹中文件名称对应。(5)如果对应就用EXCEL表中身份证号码列数据重命名文件夹中文件的文件名。

3 实现过程

建立一个工作簿。

在EXCEL表中,依次进行如下操作:

单击sheet1空白单元格->【工具】->【宏】->【Visual Basic 编辑器】,到此,就新建了一个VBA工程。

在VBA工程编辑器中双击Sheet1打开Sheet1代码窗口,在其中输入以下代码。

如下图所示:

图1

程序代码:

Sub rename()

MsgBox "请选择要重命名文件所在的文件夹"

With Application.FileDialog(msoFileDialogFolderPicker)

.AllowMultiSelect = False

.Show

reNamePath = .SelectedItems(1)

If Right(reNamePath, 1) "\" Then

reNamePath = reNamePath + "\"

End If

End With

Range("a2").End(xlDown).Select

rCount = ActiveCell.Row

Dim fs

Set fs = CreateObject("Scripting.FileSystemObject")

For r = 2 To rCount

oName = reNamePath & Cells(r, 1) & ".jpg"

If fs.FileExists(oName) Then

nName = reNamePath & Cells(r, 2) & ".jpg"

Name oName As nName

End If

Next r

End Sub

以上程序代码为用EXCEL表中第二列数据即身份证号码为文件夹中的图片重命名。由于篇幅有限,我们对以上的代码参数稍加改动,还可以拓展延伸,比如用学生的学号为照片重命名。

参考文献

[1] 伊利奇,王保众.透视Excel VBA应用与开发.人民邮电出版社,2008.1.

[2] 魏.从零开始学Excel VBA.电子工业出版社,2011.2.

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文