您是教师吗?您是班主任吗?您给班级的新生安排过座位吗?
不是班主任可能还不知,安排新生座位算是个棘手的问题,原因很多洛,由于都是新生,您不了解他们,安排他们的座位,孰前孰后?可不能凭姓名就乱套一通,这明显就不科学;更不能以成绩高低来安排座位,别给学生的第一印象就是歧视(成绩好就坐前面,成绩差就坐后面,遭到学生非议以后您就难管理他们了),这不是优秀班主任所采取的策略!
在这里,本文提供一种权且之计,为您排忧解难,轻松实现新生座位的安排!
本文所提供的座位安排方法,其依据是,根据身高和视力而定,视力差且身高不占优势者坐前面,反之,坐后面!
如下图,假设存在这样的一张学生数据表!
根据上图示例的数据,我们根据学生的身高和视力,将座位安排结果存放到如下图的Sheet2里面!
上图,是一张空表,下面,我们就一起来实现座位的安排吧!
首先,在Excel窗口中,按Alt+F11键,弹出Microsoft Visual Basic窗口,如下图;
找到“ThisWorkbook”,点击右键,执行“插入”→“模块”;之后,就增加了一个模块!
然后,如上图一样,双击“模块1”,弹出代码窗口,并在窗口中输入如上图的代码!之后,再点击如上图的“运行宏”按钮;
弹出如下图的对话框!
上图中,我们根据班级人数的多少和教室的大小,输入分组的数目,如本例的5;点击确定!
然后返回Excel窗口的Sheet2,如下图!
怎么样,一目了然了吧,座位已安排好了!
为方便大家的学习,本例代码粘贴如下:
====代码开始====
Sub PaiZuo()
Sheets(2).Select '激活座位工作表
Dim Group As Integer '定义表示数组的变量
Group = Val(InputBox("该班级分为几组?")) '输入分组的值
Zuoci (Group) '调用排座函数
Sheets(2).Select '激活座位工作表
End Sub
Sub Zuoci(gro As Integer)
Dim i As Integer, j As Integer '定义两个循环变量
Sheets(1).Select
Dim irows As Integer, icols As Integer, ixs As Integer
irows = 60 / gro
icols = gro
lxs = 1
For i = 1 To icols
lxs = i + 1
For j = 2 To irows + 2
Sheets(2).Cells(j, i) = Sheets(1).Cells(lxs, 1)
lxs = lxs + gro
Next j
Next i
End Sub
====代码结束====