论文部分内容阅读
每个学校一年之中都有若干次大型考试,繁杂的考务安排可不是一件轻松的工作。笔者使用Excel结合VBA编排了一个考务安排系统。以下,我们拿高中三年级的考务安排来说明问题。
初始化表格
首先,我们先在Excel中建立一个初始化表,将一些相关参数设置好,如图1所示。其中,有些数据是由公式计算出来的,分别如下:
总人数:“=COUNTA(原始名单!A:A)-1”
理科人数:“=SUM(H3∶H7)”
文科人数:“=SUM(H8∶H11)”
考场数量:“=COUNTA(A2∶A18)-1”
理科考场:“=COUNTIF(D∶D,"理")”
文科考场:“=COUNTIF(D∶D,"文")”
自动生成考生考号
(1)编辑原始名单,包括考生的班级、考生号、姓名等信息(如图2),其中,kh表示考号,bjdm表示班级代码,bj表示班级,ksh表示考生号,xm表示姓名,kcdm表示考场代码,zwh表示座位号。
(2)生成考号:我们可以设置由9位数字组成的考号,前三位为年级代码,第4、5位为班级代码,第6、7位为考场代码,第8、9位为座位号。
思路:我们可以依据“初始化”表中提供的考场信息,使用一个循环语句从“考号”表中复制数据到考场对照表中。关键代码如下:
Sheets("考号").Select
kc=Sheet6.Cells(5, 11).Value
’从初始化表中获取考场数量
a=0
For i=1 To kc
Sheets("考场对照表").Select’清除表
Range("A5:i29").Select
Selection.ClearContents
For k=1 To Sheet6.Cells(i 2, 2).Value
Cells(k 4, 1).Value=Sheet4.Cells(k a 1, 1).Value’填充考号
Cells(k 4, 2).Value=Sheet4.Cells(k a 1, 3).Value’填充班级
Cells(k 4, 3).Value=Sheet4.Cells(k a 1, 5).Value’填充姓名
Cells(k 4, 4).Value=Sheet4.Cells(k a 1, 8).Value’填充座位号
Next
a=a k-1
Range("a1:d42").Select
Selection.PrintOut Copies:=1, Collate:=True’打印
打印准考证
准考证包含的信息有:姓名、考生号、考场号、座位号、考号,这些数据都需要使用VBA代码一对一复制到“准考证”中。其填充的代码实现与考场对照表的代码实现基本类似。只是由于我们一般是按班级来发放准考证,为了方便,需要我们再新建一个“班排序”表,该表和考号表一样,不同的是,其排序方式是按照班级来排序的。
初始化表格
首先,我们先在Excel中建立一个初始化表,将一些相关参数设置好,如图1所示。其中,有些数据是由公式计算出来的,分别如下:
总人数:“=COUNTA(原始名单!A:A)-1”
理科人数:“=SUM(H3∶H7)”
文科人数:“=SUM(H8∶H11)”
考场数量:“=COUNTA(A2∶A18)-1”
理科考场:“=COUNTIF(D∶D,"理")”
文科考场:“=COUNTIF(D∶D,"文")”
自动生成考生考号
(1)编辑原始名单,包括考生的班级、考生号、姓名等信息(如图2),其中,kh表示考号,bjdm表示班级代码,bj表示班级,ksh表示考生号,xm表示姓名,kcdm表示考场代码,zwh表示座位号。
(2)生成考号:我们可以设置由9位数字组成的考号,前三位为年级代码,第4、5位为班级代码,第6、7位为考场代码,第8、9位为座位号。
思路:我们可以依据“初始化”表中提供的考场信息,使用一个循环语句从“考号”表中复制数据到考场对照表中。关键代码如下:
Sheets("考号").Select
kc=Sheet6.Cells(5, 11).Value
’从初始化表中获取考场数量
a=0
For i=1 To kc
Sheets("考场对照表").Select’清除表
Range("A5:i29").Select
Selection.ClearContents
For k=1 To Sheet6.Cells(i 2, 2).Value
Cells(k 4, 1).Value=Sheet4.Cells(k a 1, 1).Value’填充考号
Cells(k 4, 2).Value=Sheet4.Cells(k a 1, 3).Value’填充班级
Cells(k 4, 3).Value=Sheet4.Cells(k a 1, 5).Value’填充姓名
Cells(k 4, 4).Value=Sheet4.Cells(k a 1, 8).Value’填充座位号
Next
a=a k-1
Range("a1:d42").Select
Selection.PrintOut Copies:=1, Collate:=True’打印
打印准考证
准考证包含的信息有:姓名、考生号、考场号、座位号、考号,这些数据都需要使用VBA代码一对一复制到“准考证”中。其填充的代码实现与考场对照表的代码实现基本类似。只是由于我们一般是按班级来发放准考证,为了方便,需要我们再新建一个“班排序”表,该表和考号表一样,不同的是,其排序方式是按照班级来排序的。