报表的设计工作在桌贴工作表中进行。开始时可先设计一个座位标签,然后对该标签中要调用的数据进行反复测试。调用数据的方法是(以第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单元格为手工设定的用于输入指定页码的单元格,这样就可以方便任意页标签的显示和打印了。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)在设计的桌贴工作表中除了辅助单元格外,需要打印的单元格区域可通过页面设置对话框中的打印区域来指定(如下图)。
打印功能的设计
为了便于打印全部的考生座位标签或指定的某页标签,笔者设计了以下两段VBA代码来辅助实现这两项功能:在桌贴工作表中利用控件工具箱工具栏中的命令按钮绘制两个按钮控件CommandButton1和CommandButton2,将它们的Caption属性分别改为打印全部页和打印指定页。双击命令按钮 打印全部页,在其Click( )事件中输入代码如下图。
关闭代码窗口返回到Excel工作表中,单击打印全部页按钮就可以实现所有考场座位标签的打印。单击打印指定页按钮就可以根据提示输入需要打印的页码,系统会自动判断指定的页码是否超出页码范围,如果在指定的页码范围内则打印指定的标签页,否则会给出错误提示信息。
通过以上操作我们就可以在Excel中实现考场座位标签的打印了,而且一劳永逸,每次只需要将考生的名单等基本信息做些修改就可以直接打印了,是不是很方便呢?