用VBA编排学生座位表_第1页
用VBA编排学生座位表_第2页
用VBA编排学生座位表_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用VBA编排学生座位表 (2011-09-10 23:10:47)转载标签:it分类:技术交流在每学年的新生开学前, 班主任老师要做大量的准备工作,其中必做的一件事就是收集本班学生的报名信息,编排上课的座位表。以往班主任老师都是通过手工来编排座位表的,消耗的时间和精力相当大,一旦有学生进行了调整又不得不重复之前的劳动。下面我们就来看看如何用VBA轻轻松松实现座位表的编排。通常情况下,编排座位表需要考虑以下三个因素,即学生的视力、身高、性别等,根据学生在报名表中填写的信息,我们采集了相关的数据(如图1)。利用“控件工具箱”中的“命令按钮”控件在工作表中添加一个命令按钮,修改其“Caption”属

2、性为“排座位”,双击该按钮,在其Click事件中编写下面的代码:Private Sub CommandButton1_Click()On Error GoTo errDim fenzu As IntegerDim irow As IntegerRange(D2).Select对信息表进行排序,关键字分别为视力、身高、性别Range(A3:E48).Sort Key1:=Range(E3), Order1:=xlAscending, Key2:=Range( _D3), Order2:=xlAscending, Key3:=Range(C3), Order3:=xlAscending删除原有的座

3、位表For Each sh In WorksheetsIf sh.Name = 座位表 ThenApplication.DisplayAlerts = FalseSheets(座位表).DeleteEnd IfNext sh添加名为座位表的新工作表Sheets.Add after:=Sheets(学生信息)ActiveSheet.Name = 座位表获取分组数fenzu = InputBox(你想把学生分成几个小组?, 提示, 6)获取学生总人数icount = Worksheets(1).a65536.End(xlUp).Row - 2获取每组最多学生人数irow = Int(icount

4、/ fenzu) + 1按先行后列的顺序提取学生信息表中的学生名单For n = 1 To irowFor m = 1 To fenzu生成第N组的文字(前面空2行用于显示标题)Worksheets(2).Cells(3, m) = 第 & m & 组Worksheets(2).Cells(n + 3, m) = Worksheets(1).Cells(fenzu * (n - 1) + m + 2, 2)Next mNext nMsgBox 座位表编排成功,请根据实际情况手工微调!, vbOKOnly + vbInformation, 提示err:Exit SubEnd Sub代码说明:(1

5、)为了使编排的座位表更加合理,我们把视力低的同学尽量往前排,相同视力的同学按身高的高矮顺序排,如果身高又相同则女生排在前面,男生排在后面。(2)考虑到学生分班后肯定会进行一些调整,所以在生成座位表前首先会检查并删除当前工作簿中原有的“座位表”工作表。关闭代码窗口返回Excel工作表中,单击“排座位”按钮,系统首先会创建一个名为“座位表”的工作表并询问学生的分组数(默认为“6”组),根据需要输入相应的数字,单击“确定”按钮即可看到分组后的学生名单了,然后根据需要进行适当的微调就可以了。“讲台”可通过手工插入自选图形来实现,最终的效果如图2所示。需要说明的是,笔者的座位表是根据自己的编排理念来设计代码的,如果在编排的顺序上要进行调

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论