运用Excel VBA实现高校新生分班

来源 :智能计算机与应用 | 被引量 : 0次 | 上传用户:mohang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  文章编号: 2095-2163(2018)03-0208-04中图分类号: 文献标志码: A
  摘要: 关键词: (Dean’s Office, Nanjing Audit University Jinshen College, Nanjing Jiangsu 210023, China)
  Abstract: This paper analyzes the needs of the class-division for freshmen in universities, makes process modeling, and explores how to apply Excel VBA to realize the class-division of University for Freshmen. The application result shows that use of Excel VBA has improved the efficiency and accuracy of the work greatly.
  Key words:
  作者简介:
  收稿日期: 引言
  高校的班级是大学生的"第一社会、第二家庭、第三课堂",班级的"人为环境"会在学生的成长道路上留下痕迹,班级的风气和氛围,直接或间接影响学生人生观、价值观的形成,影响学生学习、生活习惯的养成和社交能力的培养。因此科学、合理、人性化地对学生进行班级编排,是高校学生管理工作中非常重要的一环,也是老师、家长、学生普遍关心的问题。但是学生分班问题影响因素较多、综合情况复杂,把各个班级分得合理均衡确非易事\[1\]。
  迎接新生之前,每所高校都面临着一项重要的工作--将录取的新生分班。分班的要求:保证同一专业中多个平行班班级之间人数、成绩、性别、生源地的平衡性。运用Excel进行筛选、排序的人工操作虽然能够兼顾每个班级之间的均衡,但确实是一项高强度的繁琐工作。面对成千上万的新生数据,工作人员必须花费大量时间,不仅费时费力,效率低下,而且准确率低。VBA(Visual Basic for Application)是Visual Basic的一种宏语言,运用Excel VBA解决高校新生分班问题能够发挥自动化处理的优势,提高分班的效率和准确性。
  1需求描述
  为了便于开展学生管理工作,要求各专业平行班级的人数基本相同、男女比例基本一致、同一生源地比例基本一致,学生成绩分布相似,班级内不能出现相同姓名学生,最终学生名单按照姓名音序排列。
  2过程建模
  分班过程以新生数据和班级数作为输入数据,其中招生处提供的录取新生信息包括新生的姓名、性别、身份证号码、二级学院、专业名称、生源地和成绩数据,班级数指各专业确定的班级数量。通过一系列的加工处理生成各班级学生名单,完成分班任务,图1为具体数据流程图。
  分班的主要步骤如下:
  (1)按照专业名称,把生源Excel表划分成各个专业表,统计各专业学生数,并将每个专业学生信息表保存为一个工作簿文件。
  (2)把各专业学生信息表按照性别划分成男、女生表。
  (3)将每张男、女生表按照生源地和成绩降序排列。由于全国各地高考总分不同,按照生源地和成绩降序2个关键字进行排序,使同省份学生成绩由高到低排列,保证每个平行班成绩均衡,学生的学习能力基本一致。
  (4)对排好序的学生表增加序号,并以Z形方式根据序号给每位学生分配班级信息。第一轮按照1班到n班顺序将学生分配到各班,第二轮从n班到1班顺序将学生分配到各班[2]。
  (5)将男、女生表按照班级信息,划分到各个班级,检查是否存在同名学生,按照姓名升序排序,并统计各班级学生数,以"专业名称 n班 人数"命名每张班级表。
  3VBA实现
  3.1分组
  分班过程中需要对数据依次按照专业、性别、班级进行多次分组,即按照分组依据(关键字)将原表中数据分成多个表后保存工作簿,这里以专业分组为例进行介绍,流程图见图2。核心代码如下。
  For rowData = 2 To shtData.Range("A1").CurrentRegion.Rows.Count
  sDept = shtData.Cells(rowData, "G").Value ’设置分组依据
  bln = False
  For Each shtNew In Worksheets
  If shtNew.Name = sDept Then
  bln = True
  Exit For
  End If
  Next
  If bln = False Then
  Set shtNew = Worksheets.Add(after:=Worksheets(Worksheets.Count))
  shtNew.Name = sDept
  shtData.Range("A1:J1").Copy shtNew.Range("A1")
  End If
  rowNew = shtNew.Range("A1").CurrentRegion.Rows.Count 1
  Intersect(shtData.Rows(rowData), shtData.Range("A:J")).Copy shtNew.Cells(rowNew, 1)
  Next rowData
  3.2排序與添加序号
  不同专业班级数量不同,以分4个班级为例进行说明,创建文件夹"分4个班专业表",将这些专业按性别分组后生成的Excel文件放入该文件夹。通过循环自动将该文件夹下文件依次打开,按照生源地升序和成绩降序进行排序,再利用循环为每一行添加顺序号,顺序号的值为行号减去1。核心代码如下。   3.3分班级号
  以分4个班级为例进行说明,按照Z形方式,顺序号为1-4的学生班级号是1、2、3、4,顺序号为5-8的学生班级号是4、3、2、1,依次类推,结构图如图3所示。
  所有的顺序号分成2大类,每一类又以sxh Mod 4作為条件进行多分支条件判断分配具体的班级号,代码如下。
  3.4同名检查
  运用循环对所有班级表中每个学生姓名与其后面的姓名进行比对, VBA系统方法 Find能够快速查找一个姓名是否与比对的姓名区域内相同[3]。如果出现同名同姓,对话框提示同名所在的单元格位置,便于查看和调整个别同名学生,流程图见图4。 具体代码如下:For rowData = 2 To zhs - 1
  sKey = shtData.Cells(rowData, "B").Value
  Set Rng = Range(Cells(rowData 1, "B"), Cells(zhs, "B")).Find(sKey, LookAt:=xlWhole)
  If Rng Is Nothing Then
  Else
  msgResult = MsgBox(shtData.Name
其他文献
目的:筛选瓜蒌薤白汤抗心肌缺氧缺血的有效部位。方法:采用小鼠常压耐缺氧模型、异丙肾上腺素(ISO)所致大鼠急性心肌缺血模型,观察瓜蒌薤白汤醇提物各萃取部位对小鼠常压缺氧存活
农村信息化是实现现代化的必要条件。西部农村信息化的缺失滞阻了农村非农化进程,社会公正的失衡导致了西部农村贫困化的加剧。构建西部农村经济趋同、实现地区经济协调发展,是
摘要: 当前网络环境中,P2P下载软件流量占用了宽带接入的大量带宽,这造成了网络带宽的巨大消耗,因此,对P2P 流量的检测和控制是十分必要的。提出了一种基于多协议多阶段的深度数据包检测的P2P流量识别的方法,该方法较已有方法具有识别准确度高、执行效率高、扩展性强的特点。基于这种方法,实现了一个多协议可扩展的P2P流量识别系统,系统以分层化可扩展插件的形式设计,可以对各种不同协议的P2P流量业务,进
西南山区工业化发展存在较强的资源禀赋、地理因素和交通条件制约,工业化发展存在结构性问题较为普遍,工业化对城镇化发展和农业现代化发展促进不足,对于当地县域社会发展的
台商投资大陆占比最高的制造业近年来增长率出现下降趋势,而服务业比重开始增加,现代服务业将成为台商下一波大陆投资的主力。由于文化一脉,两岸在现代服务业方面合作成功概
为了改善发动机冷起动性能和排放,提出了一种用正温度系数(PTC)材料加热柴油喷油器内燃油的方法,并设计了相应的喷油器。为研究喷油器内PTC材料加热柴油的过程,试验选择了居里温度