文档库 最新最全的文档下载
当前位置:文档库 › 学生上机座次表

学生上机座次表

学生上机座次表

横埠镇老庄小学小学生上机座次安排表班级

用VBA编排学生座位表

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

Range("A3:E48").Sort Key1:=Range("E3"), Order1:=xlAscending, Key2:=Range( _ "D3"), Order2:=xlAscending, Key3:=Range("C3"), Order3:=xlAscending '删除原有的座位表 For Each sh In Worksheets If https://www.wendangku.net/doc/9510972565.html, = "座位表" Then Application.DisplayAlerts = False Sheets("座位表").Delete End If Next sh '添加名为座位表的新工作表 Sheets.Add after:=Sheets("学生信息") https://www.wendangku.net/doc/9510972565.html, = "座位表" '获取分组数 fenzu = InputBox("你想把学生分成几个小组?", "提示", 6) '获取学生总人数 icount = Worksheets(1).[a65536].End(xlUp).Row - 2 '获取每组最多学生人数 irow = Int(icount / fenzu) + 1 '按先行后列的顺序提取学生信息表中的学生名单 For n = 1 To irow For 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 m Next n MsgBox "座位表编排成功,请根据实际情况手工微调!", vbOKOnly + vbInformation, "提示" err: Exit Sub End Sub 代码说明: (1)为了使编排的座位表更加合理,我们把视力低的同学尽量往前排,相同视力的同学按身高的高矮顺序排,如果身高又相同则女生排在前面,男生排在后面。

用VBA编排学生座位表

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

Dim fenzu As Integer Dim irow As Integer Range("D2").Select '对信息表进行排序,关键字分别为视力、身高、性别 # Range("A3:E48").Sort Key1:=Range("E3"), Order1:=xlAscending, Key2:=Range( _ "D3"), Order2:=xlAscending, Key3:=Range("C3"), Order3:=xlAscending '删除原有的座位表 For Each sh In Worksheets If = "座位表" Then = False Sheets("座位表").Delete End If { Next sh '添加名为座位表的新工作表 after:=Sheets("学生信息") = "座位表" '获取分组数 fenzu = InputBox("你想把学生分成几个小组", "提示", 6) '获取学生总人数 icount = Worksheets(1).[a65536].End(xlUp).Row - 2 ' '获取每组最多学生人数 irow = Int(icount / fenzu) + 1 '按先行后列的顺序提取学生信息表中的学生名单 For n = 1 To irow For 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 m Next n

相关文档