Excel精英培训网

 找回密码
 注册
查看: 1853|回复: 1

怎么利用利用Excel实现批量考场座位标签的打印

[复制链接]
发表于 2013-10-10 19:21 | 显示全部楼层 |阅读模式
考生名册的生成
  根据座位标签中需要打印的项目,笔者设计了“考生名册”工作表。为了体现考试的公平,大家可事先将考生按班级号“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中实现考场座位标签的打印了,而且一劳永逸,每次只需要将考生的名单等基本信息做些修改就可以直接打印了,是不是很方便呢?

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-7-6 23:16 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 13:47 , Processed in 0.186987 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表