巧用Excel VBA 快速编排考场

巧用Excel VBA 快速编排考场

ID:47840557

大小:759.01 KB

页数:15页

时间:2019-11-23

巧用Excel VBA 快速编排考场_第1页
巧用Excel VBA 快速编排考场_第2页
巧用Excel VBA 快速编排考场_第3页
巧用Excel VBA 快速编排考场_第4页
巧用Excel VBA 快速编排考场_第5页
资源描述:

《巧用Excel VBA 快速编排考场》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、巧用ExcelVBA快速编排考场座位【摘要】科学的考场座位编排方法可以从根本上杜绝学生考试时的串通舞弊现象,保证考试的公平、公正及其严肃性。本文结合自己的工作经验,利用ExcelVBA编程方法轻松实现了同级各班考生随机排座、且前后左右座位不是同班同学,打印考场座位表、桌贴等功能。经实际应用,操作简单,方便实用。【关键词】随机排座;考场编排;座位表;桌贴;VBA数组在编排考场时,既要基于学校实际,如需考虑各考场人数、组数、每组人数等出现差异,充好利用好每一个考场;还要让同级各班考生被重新随机排序后基本均匀地散布到各个考场,基本做到同一考场内同一班的考生前后左右均不

2、相邻,从根本上杜绝学生考试时的串通舞弊现象,保证考试的公平、公正及其严肃性。随着学校办学规模逐渐扩大和学生人数的增加,考场编排的工作量不断加大。面对Excel工作表内动辄上千的数据行,通过手工多次排序和复制粘贴数据完成考场编排工作显然太麻烦了。那么,能不能用相对比较简单的办法来解决问题呢?答案显然是肯定的。Excel是微软公司的Microsoftoffice的组件之一,它可以进行各种数据的处理、统计分析,在学校工作中有着广泛的应用。例如花名册、座位表、登分表等的电子文档都是使用它来创建的。Excel不仅具有强大的制表功能,同时还内置了系统开发工具VBA。VBA是

3、指VisualBasicforApplication,它是在Office中广泛应用的宏语言,可以直接对Excel对象进行编程,从而提高Excel的利用效率。使用它可以增强Excel的自动化能力,使用户更高效地完成特定任务。因此,笔者空闲时用VBA编了个程序,轻松快速地编排考场,生成考场座位表、桌贴等,经实际应用,操作简单,方便实用。一、考场编排在中高考中各考场人数一般是30人,但基于笔者学校的实际,会出现各考场人数各异、组数各异及每组人数各异的情况。因此,编排考场前,工作人员必须将考生花名册(必须含班级)录入花名册工作表,考场基本信息(必须含考场号、各组人数等)

4、录入考场设置工作表中,如下图所示。花名册工作表考场设置工作表编排考场时,为保证考生既要随机分布,又要均匀分布,在程序设计上多次使用了随机编排。(一)、班级内部考生的随机编排。程序在G列(辅助列)对学生生成一次随机数,再以班级和随机数为关键字段进行排序,实现班级内学生顺序的随机性。代码:Randomize(Timer)'初始化随机数生成器Forx=2ToSht2R'花名册行循环Cells(x,"G")=Rnd'G列写入随机数NextxWorksheets("花名册").UsedRange.SortKey1:="班级",Order1:=xlAscending,Key

5、2:="随机数",Order2:=xlAscending,Header:=xlYes,Orientation:=xlSortColumns'排序运行结果如下图:(二)、各班人数均匀分配到各考场。程序自动从《花名册》及《考场设置》工作表获取班级人数、考生总人数及考场人数后,按比例取整的方式计算各班在各考场分配的人数,公式:各班在各考场分配的人数=班级人数*(考场人数/考生总人数)。再因取整余下的考生作二次分配。代码:为提高程序运行速度,程序将各工作表数据读入VBA数组中处理。Forx=2ToUBound(ArrKC,1)'考场号循环j=j+1'考场号列号Fori=

6、2ToUBound(RenShuFenPei,1)'班级循环RenShuFenPei(i,j)=Val(ArrBJ(i,2))*Val(ArrKC(i,9))Val(ArrTJ(2,2))'按比例分配考生——班级人数*(考场设置的人数/考生总人数)NextiNextx人数分配结果如下图:(三)、编排考场号。获得各班在各考场的人数后,对各班每考生按分配的人数编考场号,对二次分配考生编上"座位"&vbTab&"100"(键盘无法输入vbTab,可防错)。代码:m=0ArrSht2=Worksheets("花名册").UsedRange.Value'读入数组处理数据

7、Forx=2ToSht2R'x某班第一个考生行号k=0'按分配人数按班编考场号***********Forx1=2ToUBound(RenShuFenPei,1)'班级循环IfArrSht2(x,Sht2BJL)=RenShuFenPei(x1,1)Then'班级名相同Fory=2ToUBound(RenShuFenPei,2)'考场循环Forj=1ToVal(RenShuFenPei(x1,y))'该班x1该考场y分配的人数ArrSht2(x+k+j-1,Sht2L+2)=RenShuFenPei(1,y)'考场号ArrSht2(x+k+j-1,Sht2L+3

8、)=j+Rnd'座位号(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。