为了顺利组织各种考试,考生在考场上找到自己的座位,坐下来等待考试是非常重要的。其中,打印考场座位标签成为一项必不可少的工作。很多朋友用Excel进行考试管理,那么如何用Excel打印批量座位标签呢?为了介绍方便,接下来,笔者以四个班的考生数据为例,介绍一下实现的过程。
考生名册的生成
根据座位标签中需要打印的项目,笔者设计了“考生名册”工作表。为了体现考试的公平,大家可事先将考生按班级号“1~4”循环的顺序整理好,“座位号”也可根据考场的大小设计成“1~30”的循环号,即每个考场30个考生。
考场座位标签报表的设计
考场座位标签的设计要本着美观、实用、节省纸张和便于剪裁的原则,结合实际使用的经验,笔者在一张A4的打印纸上设计了30个座位标签(1行3个,共10行,如下图)。
报表的设计工作在“桌贴”工作表中进行。开始时可先设计一个座位标签,然后对该标签中要调用的数据进行反复测试。调用数据的方法是(以第1个考生的座位标签为例),在第1个考生的“准考证号” 所在的B3单元格内输入公式“=INDIRECT(“考生名册!A”&CEILING((ROW()-1)/4,1)*3-2+CEILING(COLUMN()/5,1)-1+($P$2-1)*30+2)”便得到了该考生的准考证号。
公式中的INDIRECT函数的功能是用于返回指定单元格内的引用(即“考生名册”工作表A3单元格中的准考证号);公式中的“CEILING((ROW()-1)/4,1)*3-2+CEILING(COLUMN()/5,1)-1+($P$2-1)*30+2”得到的数值为“3”,使用该公式的目的在于指定该考生标签所在单元格区域(“A2:E5”,即4行5列)内返回的都是同一个数字,这样做是为了在其余的“姓名”、“班级”、“考场”和“座号”等单元格中用相同的函数实现对该考生数据的调用,这一功能主要是通过CEILING函数来实现的,该函数的功能是将指定的数值向上舍入为最接近的整数。
接下来就可以用相同的公式来调用该考生的“姓名”、“班级”、“考场”和“座号”等单元格中的数据了,只需将原来公式中的指定的A列分别改为“B”、“C”、“D”和“E”列就可以了。另外需要注意的是,由于考生的人数较多,数据调用时还要考虑到打印时超过一页的情况,因此在公式的最后加上了“($P$2-1)*30+2” (“考生名册”表中有2行标题,故要加“2”),公式中的“P2”单元格为手工设定的用于输入指定页码的单元格,这样就可以方便任意页标签的显示和打印了。
在设计的“桌贴”工作表中除了辅助单元格外,需要打印的单元格区域可通过“页面设置”对话框中的“打印区域”来指定(如下图)。
打印功能的设计
为了便于打印全部的考生座位标签或指定的某页标签,笔者设计了以下两段VBA代码来辅助实现这两项功能:在“桌贴”工作表中利用“控件工具箱”工具栏中的“命令按钮”绘制两个按钮控件“CommandButton1”和“CommandButton2”,将它们的“Caption”属性分别改为“打印全部页”和“打印指定页”。双击命令按钮 “打印全部页”,在其Click( )事件中输入代码如下图。
关闭代码窗口返回到Excel工作表中,单击“打印全部页”按钮就可以实现所有考场座位标签的打印。单击“打印指定页”按钮就可以根据提示输入需要打印的页码,系统会自动判断指定的页码是否超出页码范围,如果在指定的页码范围内则打印指定的标签页,否则会给出错误提示信息。
通过以上操作我们就可以在Excel中实现考场座位标签的打印了,而且一劳永逸,每次只需要将考生的名单等基本信息做些修改就可以直接打印了,是不是很方便呢?