对于一名班主任来说,给学生排座位是常常要做的事。但一个班三四十个学生,排位时得照顾到方方面面,如果按照常规手工编制排位表的方法,不但工作量大,而且缺乏科学性。其实利用Excel只要轻点鼠标就能完成学生的排位工作,下边笔者就给大家介绍一下如何来实现。
第一步 启动Excel 2003(其他版本操作类似),新建一个名为“排座位的工作簿,在这个工作簿中主要包括两个工作表——“学生名单和“座位表,先在“学生名单工作表中输入学生的一些基本信息,最后再添加一个“排位按钮(如图1)。
(图1)
第二步 “排座位工作簿“学生名单工作表中的学生数据输入完毕后,以“身高或者“视力为标准对输入的学生数据进行升序排序。具体方法是:先选中“身高或者“视力所在的某列单元格,然后单击工具栏中的“升序排序按钮,在弹出的“排序警告窗口中单击“排序按钮即可。
第三步 按下“Alt+F11快捷键,调出“Visual Basic 编辑器,在“Visual Basic 编辑器窗口中,右击“ThisWorkBook,选择“插入→模块命令,插入一个模块,并在右边的代码窗口中输入以下代码:
Sub paizuo()
;Sheets("座位表").Select'激活“座位表工作表
;Dim Group As Integer '定义表示组数的变量Group
;Group = Val(InputBox("本班学生分为几组?")) '将输入的数字赋给变量Group
;Zuoci (Group) '调用Zuoci函数对学生进行排座
;Sheets("座位表").Select
;End Sub
;Sub Zuoci(gro As Integer)
;Dim i As Integer, j As Integer ' 定义循环变量
;Sheets("学生名单").Select'激活“学生名单工作表
;Dim Irows As Integer, Icols As Integer, Ixs As Integer '定义“座位表行变量,列变量,及"学生名单"学生行变量
;Irows = 60 / gro '初始化行变量
;Icols = gro '初始化列变量
;Ixs = 1 '初始化“学生名单学生行变量
;For i = 1 To Icols '第一位学生自第2行开始
;Ixs = i + 1
;For j = 2 To Irows + 2
;;;;;Sheets("座位表").Cells(j, i) = Sheets("学生名单").Cells(Ixs, 1) '给座位表赋值
;;;;;Ixs = Ixs + gro '下一个学生为当前第gro个学生
;Next j
Next i
End Sub
代码输入完毕后,退出Visual Basic 编辑器。
第四步 右击图1窗口中的“排位按钮,选择“指定宏,打开“指定宏窗口,选中“paizuo宏,最后单击“确定。
完成了以上步骤的操作之后,退出、保存并重新打开“排座位工作簿,单击“学生名单工作表中的“排位按钮,这时就会弹出一个询问全班学生要分为几组的窗口(如图2,A处所示的窗口),在该窗口的文本框中输入对应的数字(如“6),再单击窗口中的“确定按钮,这时就可以看到“座位表工作表中的排位效果了,如图3,B处所示的窗口。
(图2)
在Excel中完成排位后,只需将“排座位工作簿中的“座位表工作表打印出来贴到讲台上,最后按照“座位表中的学生座次安排给学生排位就可以了。利用Excel给学生排位是不是很方便呀,各位班主任朋友们不妨一试。
小提示
在“排座位工作簿中,“学生名单工作表主要包括每学生的基本信息,如身高、性别、视力等等,这也是我们在给学生排座位时所要着重考虑的因素。