Excel如何编排打印座位编排号

学校考试考场编排软件(单年级)

学校考试考场编排软件(多年级)

学校考试考场编排软件(多年级文理绲编),请联系作者索要

【摘要】科学的考场座位编排编排方法可以从根夲上杜绝学生考试时的串通舞弊现象,保证考试的公平、公正及其严肃性本文结合自己的工作经验,利用Excel VBA编程方法轻松实现了同级各班栲生随机排座、且前后左右座位编排不是同班同学打印考场座位编排表、桌贴等功能。经实际应用操作简单,方便实用

【关键词】隨机排座;考场编排;座位编排表;桌贴;VBA数组

在编排考场时,既要基于学校实际如需考虑各考场人数、组数、每组人数等出现差异,充好利用好每一个考场;还要让同级各班考生被重新随机排序后基本均匀地散布到各个考场基本做到同一考场内同一班的考生前后左右均不相邻,从根本上杜绝学生考试时的串通舞弊现象保证考试的公平、公正及其严肃性。随着学校办学规模逐渐扩大和学生人数的增加考场编排的工作量不断加大。面对Excel工作表内动辄上千的数据行通过手工多次排序和复制粘贴数据完成考场编排工作显然太麻烦了。那麼能不能用相对比较简单的办法来解决问题呢?答案显然是肯定的。

office的组件之一它可以进行各种数据的处理、统计分析,在学校工作中囿着广泛的应用例如花名册、座位编排表、登分表等的电子文档都是使用它来创建的。Excel不仅具有强大的制表功能同时还内置了系统开發工具VBAVBA是指Visual Application它是在Office中广泛应用的宏语言,可以直接对Excel对象进行编程从而提高Excel的利用效率。使用它可以增强Excel的自动化能力使用户更高效地完成特定任务。因此笔者空闲时用VBA编了个程序,轻松快速地编排考场生成考场座位编排表、桌贴等,经实际应用操作简单,方便实用

在中高考中各考场人数一般是30人,但基于笔者学校的实际会出现各考场人数各异、组数各异及每组人数各异的情况。因此編排考场前,工作人员必须将考生花名册(必须含班级)录入花名册工作表考场基本信息(必须含考场号、各组人数等)录入考场设置笁作表中,如下图所示


编排考场时,为保证考生既要随机分布又要均匀分布,在程序设计上多次使用了随机编排

(一)、班级内部栲生的随机编排。程序在G列(辅助列)对学生生成一次随机数再以班级和随机数为关键字段进行排序,实现班级内学生顺序的随机性

(二)、各班人数均匀分配到各考场。程序自动从《花名册》及《考场设置》工作表获取班级人数、考生总人数及考场人数后按比例取整的方式计算各班在各考场分配的人数,公式:各班在各考场分配的人数=班级人数*(考场人数/考生总人数)再因取整余下的考生作二次分配。

代码:为提高程序运行速度程序将各工作表数据读入VBA数组中处理。

'按比例分配考生——班级人数*(考场设置的人数/考生总人数)

(三)、編排考场号获得各班在各考场的人数后,对各班每考生按分配的人数编考场号对二次分配考生编上"座位编排" & vbTab & "100"(键盘无法输入vbTab,可防错)

'该班x1该考场y分配的人数

'座位编排号(辅助列,处理前后同班)

将数据写入工作表并以考场号和座位编排号为关键字段进行排序,这样二佽分配的考生都汇集到一起并且按座位编排号列生成的随机数随机排序。然后采用循环语句将二次分配考生分配到每考场,如果该考場人数已满则分配给下一考场。这样使得剩余考生还是能尽可能均匀的、随机的分布到各考场

'该班ArrBJL该考场y分配的人数累加

Rnd”用于初步處理前后同班问题。例如145678910班在第1考场均分配了6名考生各班考生在座位编排号列都生成1.xxx2.xxx3.xxx4.xxx5.xxx6.xxx样式的随机数,如下图1再以考场号和座位编排号为关键字段进行排序后,初步实现前后无同班如下图2

程序再按蛇形排列座位编排的方法检查各座位编排前後左右是否有同班如果遇有同班,程序通过循环将该考生与同考场其他考生调换座位编排直到符合前后左右无同班后退出循环。

最后對各考生编上座位编排号考场编排完成。

二、座位编排表、桌贴的生成与打印

考生座位编排表、桌贴等的制作总体上讲是对单元格填充嘚过程因此代码比较简单。但由于存在各考场人数不同、组数不同及各组人数不同的情况在算法上,需利用考场组数及各组人数采鼡循环语句进行填充。代码详见上面的前后左右同班处理运行结果如图3、图4所示。

座位编排表及桌贴生成完毕后由于是每个考场一张表,需要将这些表作为一个组才能一次性打印而且可以选择打印部分考场,否则操作比较麻烦有违简洁高效的目的,因此在打印和預览上,在界面用两个ListBox列表框提供选择需打印的工作簿及相应的工作表程序智能根据不同的表格设置页面,当然也可以在界面更改页面設置以适应打印输出。然后根据界面上的数据设置工作表页面再对这些表利用数组一次性选择输出打印和预览。

桌贴打印时可能出现某考生信息横跨2页的情况程序先获取打印工作表当前状态下每页的行数,整除每考生桌贴占用的行数(本例占用5行)得到每页不横跨2頁每组的考生数,再乘以每考生桌贴占用的行数即可得到每页的行数,通过循环语句手工重新指定分页符使其符合打印要求。

到此VBA編写的考场编排程序初步完成,加上稍许美化和容错处理如图6所示,一个高效简洁的考场编排程序就完成了

座位编排表编排小工具(座位编排表编排小工具下载)V3.0官方版

利用座位编排表编排小工具软件可编排班级座位编排,座位编排的样式可在软件界面中挑选可以方便的从Excel(电子表格)文件中导入学生姓名,也可自行创建一次输入完存盘后,以后就无需再辛苦的用键盘一个个的打出学生姓名了只要动几下鼠标,一张精准的学生座位编排表就生成了如果不满意软件提供的打印方式,你可以将排好的座位编排表另存为Excel文件再行修改和打印,也方便了用户在未安装本软件的电脑上使用总之,一定能极方便得到让你满意的班级座位编排表

1、增加了对Excel文件的支持。可以从已有的電子表格中自动提取“姓名项省得再一个一个打名字,生成的座位编排表也能保存成Excel文件极大的方便了用户。   

2、更改了“自动排位的方式使电脑自动排位时更符合现实情况,当人数不够时先填充横排位置   

3、改进了鼠标右键的功能,使之用起来更方便   

4、写了一个很详细的使用教程,图文结合相信你很快就能上手。   

5、增加了一个能连接网络的窗口

首先新建一张工作表A列复制参會人员姓名,B列用rand函数产生随机数C列计算B列各值的排名,D列得到参会人员随机姓名E列顺序座位编排号。如图


复制D:E两列数据然后选择性粘贴,数值粘贴到新的工作表A:B两列。

新的工作表中选择第32行到第51行插入单元格,得到20个空行


选择D2:E2下拉填充到第11行,接着右拉如圖


我要回帖

更多关于 座位编排 的文章

 

随机推荐