多语言展示
当前在线:546今日阅读:103今日分享:49

如何用Excel排学生座位

作为班主任的话,每个学期初都可能要面临给学生排座位的情况,我们一般是按学生的高矮来进行排坐,但有时也要考虑一些其它的因素,如视力;如果用手工编排的话工作量大,对学生也没有说服力。我们用excel就可以轻松解决。
工具/原料

excel  

方法/步骤
1

新建一张工作表,在sheet1中重命名为学生名单,sheet2中命名为座位表,在学生名单表中输入学生的基本信息,如姓名,性别,身高,视力。如下图

2

在学生名单表中,进行排序,以身高和视力为标准,以身高为第一排序关键词,视力为次要关键词,具体设置见下图2

3

打开VB编辑器,编辑几行代码,我们找到“工具”菜单,找到“宏”,找开“visual basic编辑器” ,调出“Visual Basic 编辑器”;

4

在“Visual Basic 编辑器”窗口中,右击“ThisWorkBook”,选择“插入→模块”命令,插入一个模块,并在右边的代码窗口中输入以下代码:

5

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 编辑器。

6

在“学生名单”工作表中添加一个“排位”按钮 ;

7

右击图1窗口中的“排位”按钮,选择“指定宏”,打开“指定宏”窗口,选中“paizuo”宏,最后单击“确定”。   完成了以上步骤的操作之后,退出、保存并重新打开“排座位”工作簿,单击“学生名单”工作表中的“排位”按钮,这时就会弹出一个询问全班学生要分为几组的窗口(如图2,A处所示的窗口),在该窗口的文本框中输入对应的数字(如“6”),再单击窗口中的“确定”按钮,这时就可以看到“座位表”工作表中的排位效果了,如图3,B处所示的窗口。

推荐信息