APP下载

基于Excel VBA批量处理学生信息

2015-04-23

科技视界 2015年29期
关键词:总表电子表格编辑器

唐 娟

(湖北职业技术学院,湖北 孝感 432000)

Microsoft Excel软件集成了种类繁多、功能各异的函数,极大方便了广大用户利用该软件进行信息的统计、分析和管理等工作。但由于函数使用方式的单一,并不能完全满足学校工作的需要[1]。如批量对学生信息进行处理时,经常需要拆分一个总表、合并多个子表以及提取学生照片等等,这些工作单靠工作人员用原始的手工复制、粘贴和保存来完成,不仅操作麻烦,工作效率低,还容易出错。事实上,Microsoft Excel还有一个非常有用且功能强大的工具,即Excel VBA,通过一些合适的VBA代码,可以避免这些繁杂的操作步骤,实现便利的各种功能。

1 EXCEL中VBA开发简介

VBA技术的实质就是VB的编程,通过VB的编程完成需要的功能。VBA的服务对象是Office中的各个应用程序。在Excel中,VBA的主要服务对象就是数据表和图形图像。VBA在Excel为它提供的平台中可以充分展示自己的强大优势,在VBA的应用下Excel的数据处理能力得到了进一步的提升[2]。VBA入门的门槛较低,编程要求并不高。

以下给出EXCEL 2010中VBA编程和执行程序的基本步骤[3]:

(1)点击“开发工具→Visual Basic编辑器”命令,进入“Visual Basic编辑器”窗口。

(2)在左侧“工程资源管理器”窗口中,选中保存宏的工作簿,然后执行“插入→模块”命令,插入一个新模块(模块1)。

(3)将相关宏代码输入或复制、粘贴到右侧的编辑窗口中。

注意:宏的结构是:

Sub宏名称()

相关代码

End Sub

(4)输入完成后,关闭“Visual Basic编辑器”窗口返回即可。

(5)执行该程序,可以点击“开发工具→宏”,选择相应的宏名即可。

2 VBA编程实现各种信息表的拆分及合并

学校各部门会下发很多表格给各个班级填报,如学生信息表,各类证书考试报名数据表,学生体检情况表,学生银行卡号表,学生交费统计表等等,这些信息大多是用EXCEL电子表格来存储。有时需要按班级将一个总表分成独立的工作表分发到各班,有时又需要将各班填报好的独立工作表汇成一个总表,有时还需要再次分发给各班核对修改,所以这就需要频繁进行两种操作:将各个工作表合并成一个总表或者将总表拆分成各个工作表。学校工作人员可以基于EXCEL VBA,为以上两个操作分别编写宏,下面以合并一个工作簿下所有工作表为例,给出其功能代码。

Sub HBGZB()

Application.Screen Updating=False

For j=1 To Sheets.Count ’定义J=1到单元表数量

If Sheets(j).Name<>Active Sheet.Name Then

X=Range("A65536").End(xlUp).Row+1

Sheets(j).Used Range.Copy Cells(X,1)

End If

Next

Range("B1").Select

Application.Screen Updating=True

Msg Box"当前工作簿下的全部工作表已经合并完毕!"End Sub

3 VBA编程实现照片提取

学生经常会集体报考一些证书类考试,为了保证报名时个人信息与照片相对应,且报名的各项数据不出任何差错,可以将个人信息和照片制成一个电子表格打印出来,让各班学生核对并签字。学校一般都会存有学生以身份证号命名的学籍照,将这些照片集中存放在一个文件夹中,便可以利用vba编程,将这些照片提取到电子表格中,以下是相应的功能代码。

sub ZPTQ()

’所需的照片为.jpg格式,照片大小一致,放在“照片”文件夹,该文件

夹和excel文档同一目录

For Each Shp In Active Sheet.Shapes

If Shp.Type=mso Picture Then Shp.Delete

Next

Dim My Pc Name As String

For i=2 To This Workbook.Active Sheet.Used Range.Rows.Count

’从第2行、3列开始逐次向下取身份证号,并将照片放在第4列单元格内

My Pc Name=Active Sheet.Cells(i,3).Value&".jpg"

’Msg Box"图片的完整路径是"&This Workbook.Path&"照片"&My Pc Name

Active Sheet.Cells(i,4).Select’选择要插入图片的单元格作为目标

Dim MyFile As Object

Set MyFile=Create Object("Scripting.File System Object")

If MyFile.File Exists(This Workbook.Path&"照片 "&MyPcName)=False Then

Msg Box This Workbook.Path&"照片"&MyPcName&"图片不存在"

Else

’在选定的单元格中插入图片

Active Sheet.Pictures.Insert(This Workbook.Path&"照片"&MyPcName).Select

End If

Next i

end sub

实现效果如图1所示。

图1 EXCEL工作表提取照片效果图

利用VBA编程批量处理学生信息,帮助广大用户从繁重的数据处理中解脱出来,实现高效、准确的信息管理。以上给出的功能代码,可供学校行政管理人员参考使用。

[1]冯陈芙.EXCEL VBA在高校教务管理中的应用[J].办公自动化,2015,2.

[2]赵志东.Excel VBA技巧应用[J].北京:人民邮电出版社,2007.

[3]李晓玫,杨小平.Excel中的VBA程序设计[J].四川师范大学学报,2004,7.

猜你喜欢

总表电子表格编辑器
车辆段收发车运行图编辑器的设计与实现
浅谈电子表格技术在人事管理中的应用
2016年西藏自治区一般公共预算收支决算总表
2016年宁夏回族自治区一般公共预算收支决算总表
2016年浙江省一般公共预算收支决算总表
基于Excel电子表格的体育成绩统计软件设计
基于VLIW目标机的ELF二进制编辑器设计与实现
巧用EXCEL电子表格计算土地面积
2011年十家拍卖公司秋拍成交拍品总表