excel成绩分析表的特殊排序

Excel成绩分析表的特殊排序

 

  

转眼又快到期末了,成绩的统计和分析工作是必不可少的。笔者是个遇事喜欢思考的人,经常喜欢钻研一些事半功倍的小技巧,今天给大家介绍如何利用VBA轻松实现成绩分析表的特殊排序,先看下面的实例。

图1是一张已经分析好的成绩分析表,可教务主任要求:要把各班各门学科所在年级的名次加在均分后,那样一看就一目了然了。以前都是用眼睛观察,然后将名次手工添加到均分后面,但成绩一经修改就不得不重新再分析了,非常麻烦。



  大家知道,用Excel提供的升序和降序工具可以实现各学科的均分排序,但排序后,班级的顺序就乱了。如果通过排序获取均分的名次再恢复对班级的排序,这样是可行的,但八、九门学科一列一列地操作,工作量非常大,还容易出错。而且成绩修改后,还得重复劳动。后来笔者用一段VBA代码实现了这一要求。



  用控件工具箱中的“按钮”工具画一个命令按钮,将其“Caption” 属性值改为“均分排序”,双击该按钮,在其Click事件中输入如下代码:

Private Sub CommandButton1_Click()
Dim myarray()
Dim m, n, i, j As Integer
n = Application.WorksheetFunction.CountA(Columns(1))



’从第二列到第八列一共循环七次

For m = 2 To 8

’给数组赋值

ReDim myarray(n)
For i = 3 To n
myarray(i) = Cells(i, m).Value
Next i

’用冒泡排序法对数组中的元素进行排序操作

For j = 0 To n - 1
For i = 0 To n - 1 - j
If myarray(i) 〈 myarray(i + 1) Then
temp = myarray(i)
myarray(i) = myarray(i + 1)
myarray(i + 1) = temp
End If
Next
Next

’将各数值在列中的排名加括号后添加到原单元格的数值后面,中间空一个空格

For i = 3 To n
Cells(i, m).Value = Cells(i, m).Value && Space(1) && ’(’ && Application.WorksheetFunction.Match(Cells(i, m), myarray, -1) && ’)’
Next i
Next m

’主体程序执行完毕

’使各列的宽度与单元格的大小相适应

Cells.Select
Selection.Columns.AutoFit

’禁止该按钮功能(防止被再次点击)

CommandButton1.Enabled = False

MsgBox ’排序完成,该操作只能执行一次!’, vbOKOnly, ’提示框’

End Sub

关闭代码窗口返回到Excel工作表中,在运行模式下单击〔均分排序〕按钮,我们就会看到,各班各学科均分在年级中的名次已自动添加到相应的单元格中了(如图2)。

  添加名次后,程序已设定了自动扩充单元格的大小以适应单元格中的内容。另外,为了防止用户多次点击〔均分排序〕按钮,该按钮在程序执行完后即被设为无效,若要再次修改本程序,只需将该按钮的“Enabled”属性值设为“True”就可以了。

 

推荐阅读

    excel字母与数字混合内容的排序技巧

    excel字母与数字混合内容的排序技巧,数字,排序,混合,单元,格中,粘贴,复制,excel字母与数字混合内容的排序技巧 1)在B1单元格中输入以下公

    Excel 查找与替换操作

    Excel 查找与替换操作,操作,替换,查找,执行,字符串,对话框,目标,Excel 查找与替换操作 查找与替换是编辑处理过程中常要执行的操作,在Exce

    Excel 重复操作

    Excel 重复操作,操作,重复,菜单,执行,命令,选取,存档,Excel 重复操作 在本章中,我们将学习如何对已经建立的工作表进行编辑工作。 在Ex

    Excel 撤消与恢复操作

    Excel 撤消与恢复操作,操作,恢复,撤消,命令,重复,步骤,单击,Excel 撤消与恢复操作 在Excel 2000中,还提供了多步撤消操作,利用该操作能够“

    Excel工作表选取操作

    Excel工作表选取操作,操作,选取,鼠标,单击,区域,定位,拖动,Excel工作表 选 取 操 作 在Excel 2000中,所有的工作主要是围绕着工作表展开

    Excel 对齐工具的使用

    Excel 对齐工具的使用,工具,对齐,标题栏,选择,格式,格中,区域,Excel 对齐工具的使用 在Microsoft Excel 2000中,对于单元格中数据的对齐方

    Excel 排序

    Excel 排序,排序,关键字,选项,数据,命令,恢复,行会,Excel 排序 通过排序,可以根据某特定列的内容来重排数据清单中的行。例如,假设一包含

    Excel动画教程:按笔画排序数据

    Excel动画教程:按笔画排序数据,动画教程,笔画,排序,数据排序,姓氏笔画,数据,对话框,Excel动画教程:按笔画排序数据 利用“排序”对话框,可以

    excel统计偶数单元格合计数值

    excel统计偶数单元格合计数值,偶数,统计,解答,安装,数值,单元格,要有,excel统计偶数单元格合计数值 解答: 统计F4到F62的偶数单元格合计数

    Excel动画教程:用窗体命令调用宏

    Excel动画教程:用窗体命令调用宏,命令,调用,动画教程,窗体,文档,仅对,按钮,Excel动画教程:用窗体命令调用宏 如果宏仅对当前工作簿文档有效

    Excel统计函数:AVERAGEA函数实例

    Excel统计函数:AVERAGEA函数实例,函数,统计,文本,参数,计算,区域,名称,Excel统计函数:AVERAGEA函数实例 AVERAGEA作用: 计算参数列表中数值