基于VBA和EXCEL的学生成绩排序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程的教学工作。
参考文献
[1] 赵智大.高电压技术.北京:中国电力
出版社,1999
表3
[2] 第三届全国高等学校电气工程及其自
动化专业教学改革研讨会论文集
作者简介 孔 斌 ( 1 9 6 9 - ), 男 , 安 徽 寿 县 人 , 郑
州大学讲师,硕士,主要从事电力系统运
行与控制方面的教学和研究
-232-
Sub f_sort() Dim i As Integer num = 30 For i = 0 To num - 2 ‘判断上下总分两单元格数值 是否相等 If (Sheet1.Cells(4 + i, 7).Value = Sheet1.Cells(3 + i, 7).Value) Then ‘相等则设置名次单元格数值相 等 Sheet1.Cells(4 + i, 8).Value = Sheet1.Cells(3 + i, 8).Value End If Next i End Sub 宏运行完以后,相同成绩的学生的排 名就相同了,然后再按照学号从小到大排 序即可,见表 3。 2.4 按照单科成绩排序 利用按照总分排序的方法,在宏中 更改一下进行排序的范围,就可以把单 科成绩的顺序求出来。最后排序出来的 表格中,每个学生在班里的总分的名次 及各单科成绩的名次就一目了然了。 在 EXCEL 中使用 VBA 进行数据的统
基于 V B A 和 E X C E L 的学生成绩排序
马宁 1 邓先瑞 2 杜瑞庆 2 1、唐山师范学院计算机系应用教研室 2、唐山师范学院计算机系网络教研室
摘 要 介绍了 VBA 在 EXCEL 中的应用:利用 VB 编辑 器缩写宏的代码,完成 EXCEL 难以解决的问 题,可以提高数据计算的速度和工作的效 率。 关键词 V B A ;E X C E L ;成绩;宏;编辑器
表1
计和计算,非常方便。使用小段的 V B A 的代码和简单的语句就能解决用单纯的 E X C E L 难以解决的问题。充分利用 V B A ,会大大增加工作的效率。
参考文献 [1]韩泽坤,朱瑞亮.EXCELVBA 高效办
公范例应用[M].北京:中国青年出版社. 2004 [2](美)沃肯巴赫.Excel2003 高级 VBA 编程宝典[M].北京:电子工业出版 社.2005 作者简介 马宁,女,1 9 7 3 . 4 - ,河北省唐山人, 汉族,唐山师范学院计算机系应用教研室 ( 主 任 ), 讲 师 , 工 学 学 士 , 现 主 要 从 事计算机程序语言、计算机应用的教学与科 研工作。 邓先瑞,女,1973 -,唐山师范学院计算机 系网络教研室,讲师,工学硕士,现在中国 科学院攻读博士,主要从事现主要从事计算 机程序语言、自动化的教学与科研工作。 杜瑞庆,男,1974.9-,河北省赞皇县人, 汉族,唐山师范学院计算机系网络教研室, 讲师,工学硕士,现主要从事计算机程序语 言的教学与科研工作。
uf_sum.Show '激活输入学生信息的窗体 End Sub 调用此宏时会出现一个如下图的窗 体,要求用户输入学生的相应信息。
点击“开始计算”命令按钮就会在 E X C E L 的工作表中实现计算总分的功 能。
在编辑“开始计算”按钮的程序之
前,应当先在工作簿的通用部分声明 4 个 全局变量,用来存储用户输入的信息:
Option Explicit ' Dim first_course As String ' 存储第 一个学生第一门成绩所在的坐标 Dim last_course As String '存储第 一个学生最后一门成绩所在的坐标 Dim sum As String ' 存储第一个学 生总分所在的坐标 Dim num As Integer '存储班级里的 学生总数 “开始计算”命令按钮的程序,将 用户输入的信息转换成计算所需信息, 然后再根据坐标给相应的单元格赋值。 程序如下: Private Sub CommandButton1_Click () Dim ts1, ts2 As String '获取用户输入的信息 first_course = TextBox1.Text last_course = TextBox2.Text num = Val(TextBox3.Text) sum = Trim(TextBox4.Text) ' 将第一名学生的第一门成绩的 坐标的行和列的信息分别取出来 Dim r_first As String Dim c_first As Integer r_first = Left(Trim(first_course), 1) c_first = Val(Right(Trim (first_course), Len(first_course) - 1)) '将第一名学生的最后一门成绩 的坐标的行和列的信息分别取出来 Dim r_last As String Dim c_last As Integer r_last = Left(Trim(last_course), 1) c_last = Val(Right(Trim (last_course), Len(last_course) - 1)) '将总分的坐标的行和列的信息
在微软办公软件中,EXCEL 是第一 个绑定 VBA 自动化语言的应用程序,自 从 EXCEL 5.0 版本出现 VBA 后,它的强 大功能和巨大的潜能不断为用户所领悟并 认可。VBA 是应用程序开发语言 Visual Basic(简称为 V B )的子集,并继承于 V B 应用程序。
V B A 有许多优势,主要体现在: V B A 功能强大,能解决大多数用户的问 题,而且简单易学、操作简单快捷;利 用 V B A 可方便地完成大量的重复操作, 也可使用快捷键、菜单命令或工具按钮 等快捷途径来执行 VBA 程序,实现大量 复杂操作的自动化;V B A 绑定在 E X C E L 中,EXCEL 的各个功能都可用 VBA 程序 来直接完成。
- 64 c_sum = Val(Right(Trim(sum),
Len(sum) - 1)) '计算学生总分 For i = 0 To num - 1 ts1 = r_first & Trim(Str
(c_first + i)) ts2 = r_last & Trim(Str
上接第 230 页 切转换容易造成教学思路混乱。所以在 教学过程中采取传统教学与多媒体教育技 术相结合。
6 结束语
《高电压技术》课程面广量大,教
与学的难度都比较大,只有调动教与学
两方面的积极性,才能取得好的教学效
果。不断提高自身的素质,而且在整个
表2
教学过程中启发学生去思考问题,激化
学生的学习积极性,才能切实做好本门
EXCEL 在统计学生成绩中起到非常 大的作用,加入一些 VBA 的操作,会使 得操作更加方便简单,提高效率。本文 介绍了一种使用 VBA 和 EXCEL 对学生期 末考试成绩进行快速排序的高效方法。
1 VBA 和 EXCEL
VBA是Visual Basic for Applications 的缩写,是 Microsoft Office执行后台处 理功能的编程语言,提供与 Visual Basic 相同的语言功能。EXCEL 是微软办公套 装软件的一个重要的组成部分,它可以 进行各种数据的处理、统计分析和辅助 决策操作,广泛地应用于管理、统计财 经、金融等众多领域。
2.3 按总分排序 通过 EXCEL 菜单栏中的“数据”—— “排序”,按“总分”从大到小排序,并在 第一名学生的“总分排名”单元格中输入 1,将光标移动到此单元格右下方,按住 CTRL 键往下拖动到最后一名学生处,总 分排名完成。学生的总分排序如表 2。 这张表看起来有些乱,因为学号已经
ቤተ መጻሕፍቲ ባይዱ
打乱,而且相同总分的学生获得的排名 却不同,要解决这些问题,可创建一个 宏来完成。宏的名字叫 f_sort,程序如 下:
-231-
科技教育创新 中国科技信息 2007 年第 1 期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Jan.2007
分别取出来 Dim r_sum, c_sum As Integer r_sum = Asc(Left(Trim(sum), 1))
(c_last + i)) Sheet1.Cells(c_sum + i,
r_sum) = "=sum(" & ts1 & ":" & ts2 & ")"
Next i MsgBox (" 计算完毕! ") Unload uf_sum End Sub
运行完此宏,学生的总分就可计 算出来。
2. 学生成绩排序
期末考试结束后,班主任往往需要 对学生的成绩进行统计和排序,使用 V B A 进行处理,可以简化操作,提高效 率。另外,每年班级里都可能有不同的 学员加入,每年都要处理学员的成绩, 那么从长远的角度上看,使用 VBA 是更 有效更方便的方法。
2.1 按学号录入学生成绩 考试结束时,首先将学生成绩录入 E X C E L 文件中的一个工作表(本文以 S H E E T 1 为例)。 此班级有 30 个学生,分别参加了英 语、C 语言、高数和法律 4 门课的考试,学 号前几位学生的成绩如表1。 2.2 利用 VBA 计算总分 为了便于进行计算,创建一个宏, 利用 EXCEL 提供的 Visual Basic 编辑 器,创建一个窗体,让用户输入学生信 息所在的地址,根据地址进行计算,可 适应多个表中不同班级不同人数的情况, 使用非常方便。 宏的内容为: Sub m_sum()
相关文档
最新文档