用Excel给学生轻松排座位的方法介绍
发布时间:2012-12-06 15:41:17 作者:佚名
我要评论
对于一名班主任来说,给学生排座位是常常要做的事。但一个班三四十个学生,排位时得照顾到方方面面,如果按照常规手工编制排位表的方法,不但工作量大,而且缺乏科学性。其实利用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给学生排位是不是很方便呀,各位班主任朋友们不妨一试。
小提示
在“排座位”工作簿中,“学生名单”工作表主要包括每学生的基本信息,如身高、性别、视力等等,这也是我们在给学生排座位时所要着重考虑的因素。

(图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给学生排位是不是很方便呀,各位班主任朋友们不妨一试。
小提示
在“排座位”工作簿中,“学生名单”工作表主要包括每学生的基本信息,如身高、性别、视力等等,这也是我们在给学生排座位时所要着重考虑的因素。
相关文章

阳历/农历转换对照表怎么做? Excel制作日历表/万年历的最终版
想要制作阳历/农历转换对照表,,通过这个对照表,你只需知道阳历日期,就可以快速准确的找到对应的农历日期,下面我们就来看看详细制作方法2025-04-10
工作上需要制作一个日历表/万年历,该怎么制作呢?我们需要使用三个excel函数来实现,详细请看下文介绍2025-04-10
Excel中有一个功能非常强大的函数,它就是SUMPRODUCT函数,既能求和、计数、权重计算,还能排名等,今天我们就来看看Excel根据权重求和的技巧2025-04-10
tocol函数哪个版本能用? excel中tocol函数的两种高级用法
TOCOL函数公式非常强大,值得一学,从字面意义可以理解出来,它是将数据转换成一列的,今天分享TOCOL函数的2种高级用法2025-04-10
Excel隐藏行和折叠行有什么不同? 隐藏行和折叠使用方法和区别介绍
excel表格进行操作的时候,发现有隐藏和和折叠行,看上去效果一样,都隐藏了,但是两者是有很大区别的,详细请看下文介绍2025-03-21
Excel工龄计算不再愁! Excel隐藏函数DATEDIF轻松计算精确到天级的工龄
在日常工作中,我们经常需要计算员工的工龄,以便进行人事管理、薪资调整等工作,本文将详细介绍如何在Excel表格中计算工龄,并提供多种实用方法供您选择2025-03-13
Excel数据处理遇到的问题,99%都是由于奇葩的数据格式造成的,今天跟大家整理了几个Excel表格构建的规则,先不要问为什么,照着做就对了2025-03-06
Excel透视表1月到12月不能排序怎么办? 数据透视表日期无法排序解决方法
如图对数据透视表日期进行升序排序后,仍不是我们想要的结果,有可能月份是文本,不能排列,下面我们就来看看详细解决办法2025-03-06
首先咱们得明确一下账龄的概念,简单来说,账龄就是某个账户的余额从产生到现在的时间长度,比如,一年以内的账龄就是那些在过去一年内产生的债权或债务,下面我们就来看看2025-03-06
实现办公自动化! DeepSeek搭配Excel制作自定义按钮的技巧
DeepSeek生成想要的代码很方便,如果将生成的代码放到excel中作为vba代码使用,岂不是能实现办公自动化?下面我们就来看看实现方法2025-03-05



最新评论