APP下载

利用Excel VBA实现高职学生考证信息的统计

2017-11-25唐娟

科技资讯 2017年28期
关键词:考证统计

唐娟

摘 要:高职学生纷纷通过考证来提高自己的就业竞争力,学校教学部门需要了解学生的考证情况。本文利用Excel VBA编程,对高职学生考证信息进行归纳和统计,给出了可供参考的功能代码,为学校提供灵活、准确的考证资料。

关键词:Excel VBA 考证 统计

中图分类号:TP311 文献标识码:A 文章编号:1672-3791(2017)10(a)-0011-02

面对严峻的就业形势,高职学生纷纷通过“考证”来提高自己的就业竞争力,一般来说,高职学生所考的证书分为两类:一类是与本专业相近的职业资格证书,如电工证、物流师证、育婴师证等,另一类是公共类证书,如普通话水平证、英语四六级证、计算机等级证等[1]。高职学生考证“热”,学校教学部门也“热切”于了解学生的考证情况,如机电专业学生电工证的考证人数和通过人数、所有学生英语四级证的报考人数和通过率等。如果考证的原始成绩数据是excel电子表格,基于数量的数据统计只需要通过Excel函数进行汇总和计算即可,但是教学部门往往需要进一步了解的是:具体到每个教学班、每个学生的某个证书是否考过并是否通过。以公共类证书为例,想得到学生考证信息统计表(如图1所示),只用Excel函数功能无法实现。Microsoft Excel还有一个非常有用且功能强大的工具,即Excel VBA。

VBA是Visual Basic for Applications的缩写,是内嵌于office软件中的一个开发模块,这个模块提供程序自主开发,语言基础和VB(Visual Basic)相似,通过VB的编程完成需要的功能。

1 Excel中VBA编程和执行步骤

以Excel2010为例,VBA编程和执行程序的步骤如下[2]。

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

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

(2)将相关宏代码输入或复制、粘贴到右侧的编辑窗口中。注意:宏的结构是:

Sub 宏名称()

VBA代码

End Sub

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

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

2 考证统计的VBA代码编写

本文以计算机等级考试考证情况统计为例,给出实现过程。

首先打开一个工作薄,将历次计算机等级考试成绩全部拷贝到sheet1中,至少包含准考证号、姓名、身份证号、成绩四列,如图2所示。计算机等级考试准考证号最左边两位代表考试科目,图2中“15”为计算机等级考试一级科目之一,“24”和“29”为计算机等级考试二级科目。

然后,需要了解哪些学生的考证情况,就将这些学生的姓名、身份证号等信息放到sheet2表中,如图3所示。

再进行编程前的分析:为方便日后数值的汇总,图3中计算机一级和计算机二级两列的值,可以用“1”代表成绩合格,“0”代表成绩不合格,“-1”代表未参加过考试。程序逻辑为:将计算机一级和计算机二级列中状态值全部预设为“-1”,代表该科目未参加过考试。顺次取sheet2中的各行身份证号遍历sheet1成绩表,如sheet1中找到相同身份证号的记录,则判断相应的准考证号最左边两位代表的是一级还是二级,若该行记录中的成绩为及格,则将sheet2中相应级别下单元格的值置为1;如不及格,须判断该单元格内是否有为1的值,若不为1,则置为0。

程序逻辑分析完毕,按本文前述方法,为工作簿sheet2,插入一个VBA模块。该模块的主要代码如下:

For i = 2 To UBound(arr) ‘arr为sheet2数据区域

ls_identity_id = Sheet2.Range("c1").Rows(i).Value

For j = 2 To UBound(crr) ‘crr为sheet1数据区域

If Sheet1.Range("c1").Rows(j).Value = ls_identity_id Then

If Left(Sheet1.Cells(j, "a"), 2) = 15 Then

If Sheet2.Cells(i, "e").Value <= 0 Then

If Sheet1.Cells(j, "d") < 60 Then Sheet2.Cells(i, "e").Value = 0

Else Sheet2.Cells(i, "d").Value = 1

End If

End If

Else

If Sheet2.Cells(i, "f").Value <= 0 Then

If Sheet1.Cells(j, "d") < 60 Then Sheet2.Cells(i, "f").Value = 0

Else Sheet2.Cells(i, "e").Value = 1

End If

End If

End If

End If

Next

Next

執行以上程序,得到如下结果,如图4所示。

英语四六级等其它科目的考证信息统计可参考以上方法,不再赘述。有了图4的结果,如想汇总某个证书获证人数,可累加相应列中所有为“1”的值,汇总未参加考证的人数,可累加为“-1”的值。另外,根据实际需要,可以将数字“1”“-1”“0”整体替换为有实际意义的汉字,图1即为替换后的效果。

本文利用VBA编程归纳、统计高职学生考证信息,为学校教学部门提供了准确详细的资料,给出的功能代码,可供学校教学管理人员参考使用。

参考文献

[1] 曹志英.高职学生考证热现象的分析与思考[J].青年与社会:上,2015(5):162.

[2] 李晓玫,杨小平.Excel中的VBA程序设计[J].四川师范大学学报:自然科学版,2004(4):423-426.endprint

猜你喜欢

考证统计
高职院校技能竞赛保障体系
芜湖《商务日报》档案之发现及初步研究
基于考证与实操并举的会计专业改革与实践研究
2008—2015我国健美操科研论文的统计与分析
山东省交通运输投资计划管理信息系统的设计
市场经济背景下的会计统计发展探究