首页officeexcel正文

利用Excel的编制座位表方法技巧

强国说学习2022-08-11115方法技巧座位Excel编制利用

“轻”文对学生座位的编制过程是这样讲的:“在Excel中直接利用鼠标拖动单元格数据的功能,编好学生的位置”,对这个过程,虽说是用鼠标拖动,但考虑到学生数量很多,这个工作量实际上并不轻松。再说,学生的座位是经常调整的,对于座位的局部调整后的处理,“轻”文没有涉及。恰好本人也曾做过这方面的工作,同样采用的是编写VBA代码的方式,真正轻松的解决了学生座位的编制问题。而且,由于在程序开头增加了一个交互的设计(只需要输入实际学生的排列方法,即行、列数,程序自动计算出学生人数),程序的通用性和可移植性更强了,下面是实现的方法

准备工作

首先打开学生的“学籍表”工作簿,将相应的工作表命名为“学籍表”,我们主要是利用其中的“身高”、“是否近视”、“听力”等数据将学生进行排序(个别的顺序用手工进行调整),然后利用这个程序,创建一个新的名为“座位表”的工作表,把“学籍表”中调整好的“姓名”列数据复制到“座位表”中,巧妙利用循环把这些数据重新组织编排,形成“座位表”。

如果大家有兴趣,完全可以把“轻”文中代码适当修改后添加在本代码的后面(考虑到文章的篇幅,本文没有将它们合并到一起),这样只要轻轻一点鼠标,就可以真正轻松的实现座位表的全自动编制了,呵呵。

程序代码

Sub 排座位()

'

' 排座位 Macro

' chen jin hong 记录的宏 2002-4-20

'

'提供一个交互的环境,提示输入实际原始数据

num = InputBox("您的班级学生人数是?", "请输入")

强国说学习qiangguoshuo.com

col = InputBox("座位表的列数是?", "请输入")

Row = num col + 1

'计算座位表的行数(排)

'从学籍表中复制出学生姓名,在当前工作簿中插入一工作表,并命名为“座位表”

Sheets("学籍表").Select

Range("B2:B100").Select

'选中学生姓名

Selection.Copy

'复制到剪贴板上

Sheets.Add

'新增一工作表

ActiveSheet.Name = "座位表"

'命名为“座位表”

Range("A1").Select

'选中A1单元格,准备粘贴

ActiveSheet.Paste

'将剪贴板中内容粘贴到“座位表”A列

'以下按照5×8的格式将学生安排到指定座位,形成座位表的形式

For n = 2 To num

sSourceCell = "A" && n

'移动的源单元格地址

stemp1 = (n - 1) Mod col

'计算目标单元格地址

stemp2 = (n - 1) col + 1

'目标单元格的行标

stemp3 = Chr(Asc("A") + stemp1)

'目标单元格的列标

sDestCell = stemp3 && stemp2

'形成目标单元格地址

Range(sSourceCell).Select

'选中源单元格

Selection.Cut Destination:=Range

(sDestCell) '移动到目标单元格

Next

Range("A1").Select '将光标移动到A1单元格,结束程序

End Sub

如想转载该文章请注明出处:强国说学习-qiangguoshuo.com
强国说学习

转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!

本文链接:https://www.qiangguoshuo.com/excel/19101.html