- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Excel实现考场编排几种方法
Excel实现考场编排几种方法
摘 要:实现考务管理的信息化、现代化是当今各类招生考试机构及学校教务部门面临的共同课题,文章在总结了几种计算机编排考场算法的基础上,充分利用Excel的易操作性及内置的VBA编程特性,提供了三种利用Excel工作表数据进行考场自动编排的实现方法。
关键词:考场编排;排考场
中图分类号:G202文献标识码:B文章编号:1673-8454(2010)24-0051-04
利用计算机程序进行考场编排,快捷、方便、高效、公平,是很多考务人员进行考场编排首选的通行办法。但由于绝大多数编排程序都是一些专用软件,或者需依托数据库管理系统平台才能运行,对考务人员的计算机应用水平提出了更高的要求,同时也将一部分计算机基础比较差的同志拒之门外。在对当前比较流行的考场编排算法进行分析研究的基础上,考虑到Excel电子表格软件应用普及率较高,许多办公人员都能熟练操作,笔者认为运用Excel内置的VBA(Visual Basic For Application程序设计语言)进行简单编程、实现考场编排不失为一种值得推荐的做法。
使用VBA操作Excel中的数据,可以将其工作簿中的多个工作表作为关系型数据库中的数据表来操作,甚至不需要打开工作簿也可以读取工作表中的数据。要实现上述操作,就要用到微软提供的访问数据库的ADO(ActiveX)数据对象模型,透过OLE-DB编程接口对数据表进行存取查询等操作。要在VBA中使用ADO,首先需要在Excel的VBA编程环境中设置对ADO的引用,在VBA项目窗口中单击工具菜单中的“引用”,在弹出的窗口中选择Microsoft ActiveX Data Objects 2.8,点击确定。如果本应用程序可能要在低版本的Excel中运行,则要考虑使用低版本的ADO library,以提高兼容性。
一、考场编排前期数据准备工作
编程环境使用Excel2007,文件存贮格式采用2007启用宏的工作薄文件(XLSM扩展名)或者Excel97-2003(XLS扩展名)工作薄文件。在此我们假设需要为某一高中招生考试编排考场,某考点共有N所学校的学生考试,每一个考场都标准化安排30名考生,要求每个考生的前后左右都不能是同一个学校的学生,需要编排考场的数据已存放在当前工作簿的SHEET1工作表中,主要栏目包括考生姓名、毕业学校等信息,其中毕业学校是必须的栏目,因为编排考场时要依据毕业学校字段对考生进行分组排序,在进行编排考场前,需要处理的前期数据准备工作主要有以下几点:①在VBA项目窗口中插入一个模块,并在此模块中新建一个“编排考场”过程。②声明并初始化相关变量。③由于Excel VBA的ADO对自身工作簿中的工作表进行查询时效率非常低,且存在无法关闭进程的问题,因此需要将本工作簿中存放考生数据的SHEET1工作表复制另存为另一个XLS扩展名工作薄文件(与Excel97-2003完全兼容的工作薄文件格式),下一步将从此工作薄而不是当前工作薄文件查询数据。④在当前工作薄中新建一个考场编排工作表,以存放编场结果。⑤连接第三步另存的存贮原始考生数据的工作簿,统计各学校名称及人数,并按学校人数多少排序将其存入一个临时数组。⑥使用同一连接查询全部考生记录,并按临时数组中学校名称及顺序循环设置筛选条件,将所有考生数据依次复制到新建的“考场编排”工作表中,同时由程序自动为此新工作表插入准考证号、考场号、座号字段,为下一步编排考场做好数据准备工作。
主要代码如下所示:
Public Sub 编排考场()
Dim cnn As New ADODB.Connection //声明并引用一个ADO的Connection连接对象变量
Dim rs As New ADODB.Recordset //声明并引用一个ADO的Recordset记录集对象变量
Dim cnnStr As String //声明连接字符串变量
Dim SQL As String //声明查询字符串变量
Dim pretext As String
pretext = 1037 //指定准考证流水号前的预置代码,可随意设定,这里假定为“1037”
Dim myWbName As String //声明 Excel工作簿名称、字符串变量
Dim ws As Worksheet//声明 Excel工作表对象变量
On Error Resume Next
Application.DisplayAlerts = False
Sheet1.Copy
ActiveWorkbook.SaveAs Th
文档评论(0)