计算机表格成绩排名,电脑技巧收藏家excel技巧excel成绩分析表的特殊排序

本文主要是介绍计算机表格成绩排名,电脑技巧收藏家excel技巧excel成绩分析表的特殊排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Excel成绩分析表的特殊排序

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

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

e20d61a8268bd62d5254c89830ece937.png

大家知道,用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)。

d53a57736b9169fc45ae79ecd44ccb8b.png

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

来源:互联网

这篇关于计算机表格成绩排名,电脑技巧收藏家excel技巧excel成绩分析表的特殊排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/208055

相关文章

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Python进阶之列表推导式的10个核心技巧

《Python进阶之列表推导式的10个核心技巧》在Python编程中,列表推导式(ListComprehension)是提升代码效率的瑞士军刀,本文将通过真实场景案例,揭示列表推导式的进阶用法,希望对... 目录一、基础语法重构:理解推导式的底层逻辑二、嵌套循环:破解多维数据处理难题三、条件表达式:实现分支

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按