当前位置: 首页 > news >正文

基于VBA实现成绩排序的最佳方法-解放老师的双手

   作为一名老师,每到期末就要面对一件让人头疼的事情——成绩表统计。

   首先,要收集每个学生的考试成绩。这需要花费大量的时间和精力,因为每个学生都有多门科目的成绩需要统计。

   其次,要将每个学生的成绩录入到电子表格中。这看起来很简单,但实际上却非常繁琐。因为每个科目的成绩都需要分别录入,而且还要注意录入的格式和公式是否正确。

   然后,要对每个学生的成绩进行计算和排名。这需要对每个科目的成绩进行加权平均,然后再根据总分进行排名。这个过程需要非常仔细地检查和核对,以确保每个学生的成绩都是准确的。 

  总的来说,成绩表统计是一项非常繁琐和耗时的工作,需要老师们付出大量的时间和精力。但是,这项工作又是非常重要的,因为它能够帮助学生和家长了解自己的学习情况,以便更好地调整学习计划和提高成绩。

  对于成绩表的统计工作会大量用到Excel,当将成绩表已统计到表格中后,排名的工作也占用了大量的时间,但现在有一个好的解决办法,可以帮助你自动生成排名,那么会不会很方便呢。

  本文就是基于VBA实现的自动成产排名,按照总排名、各科排名都可以自动生成。话不多说,先上代码:

  1. 成绩表的形式如下图所示:

  

 2. 打开开发者工具,Visual Basic中,新建模块,复制如下代码:


Sub SortAndCopy()Dim wb As WorkbookDim wsSrc As WorksheetDim wsDst As WorksheetDim rngSrc As RangeDim rngDst As RangeDim i As Long'打开当前工作簿Set wb = ThisWorkbook'选择源工作表Set wsSrc = wb.Sheets("成绩表")'选择源数据范围Set rngSrc = wsSrc.Range("A1").CurrentRegion'按总分排序rngSrc.Sort Key1:=rngSrc.Range("C2"), Order1:=xlDescending, Header:=xlYes'创建新工作簿Set wsDst = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count))wsDst.Name = "总分排名"'复制排名数据到新工作表Set rngDst = wsDst.Range("A1")rngSrc.Copy rngDst'添加排名列wsDst.Columns("D:D").Insert Shift:=xlToRightwsDst.Range("D1").Value = "排名"wsDst.Range("D2").FormulaR1C1 = "=RANK(RC[-1],R2C3:R" & rngSrc.Rows.Count + 1 & "C3)"wsDst.Range("D2").AutoFill Destination:=wsDst.Range("D2:D" & rngSrc.Rows.Count + 1)'按语文科目排序rngSrc.Sort Key1:=rngSrc.Range("D2"), Order1:=xlDescending, Header:=xlYes'创建新工作簿Set wsDst = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count))wsDst.Name = "语文排名"'复制排名数据到新工作表Set rngDst = wsDst.Range("A1")rngSrc.Copy rngDst'添加排名列wsDst.Columns("E:E").Insert Shift:=xlToRightwsDst.Range("E1").Value = "排名"wsDst.Range("E2").FormulaR1C1 = "=RANK(RC[-1],R2C4:R" & rngSrc.Rows.Count + 1 & "C4)"wsDst.Range("E2").AutoFill Destination:=wsDst.Range("E2:E" & rngSrc.Rows.Count + 1)'清除源数据排序rngSrc.Sort Key1:=rngSrc.Range("A1"), Order1:=xlAscending, Header:=xlYes'选择第一个工作表wb.Sheets(1).Activate'其他排名同上
End Sub

划重点:

1. 该公式是通过使用RANK函数来计算源工作表(rngSrc)中第三列数据的排名,其中RC[-1]表示当前单元格的左侧单元格,R2C3表示源工作表中第二行第三列的单元格,R" & rngSrc.Rows.Count + 1 & "C3"表示源工作表中最后一行第三列的单元格。因此,该公式将计算目标单元格左侧单元格的值在源工作表中第三列的排名,并将结果显示在目标单元格中。

wsDst.Range("D2").FormulaR1C1 = "=RANK(RC[-1],R2C3:R" & rngSrc.Rows.Count + 1 & "C3)

2. 因为上面公式中针对的是左侧的数据排名,故此在增加排名列时一定要放在科目的右边。比如:

成绩表中语文科目在D列,新增排名列就要在E列。

执行结果如下:

可以看到当点击运行后,会自动生成总排名和语文科目的排名,当然也可以生成其他科目的排名,篇幅有限,就不过多介绍了。

  

 总之,当你可以一边看手机,一边就把活做了,想想是不是特开心一件事。

当你看完这篇文章,觉得有用时,麻烦给个好评哟~~。

相关文章:

基于VBA实现成绩排序的最佳方法-解放老师的双手

作为一名老师,每到期末就要面对一件让人头疼的事情——成绩表统计。 首先,要收集每个学生的考试成绩。这需要花费大量的时间和精力,因为每个学生都有多门科目的成绩需要统计。 其次,要将每个学生的成绩录入到电子表格中。这看起来…...

OCAF如何实现引用关系和拓扑关系

在 OpenCASCADE 中,TDF_Label 是用来保存对象及其属性的基本单元。TDF_Label 可以通过添加不同类型的属性来保存不同的数据类型。属性是继承自 TDF_Attribute 类的对象,每个属性都有一个唯一的标识符(GUID)来识别其类型。TDF_Label是OpenCASCADE中用来管理数据的标签类,它…...

自动创建设备节点

在成功加载驱动模块之后,还需要使用 mknod命令创建设备节点,才能在/dev目录下创建对应的设备文件。自动创建设备节点的功能需要依赖 mdev 设备管理机制,在使用 buildroot 构建 rootfs 的时候,会默认构建 mdev 的功能,m…...

JavaWeb ( 六 ) JSP

2.4.JSP JSP (Java Server Pages) : 一种在服务器端生成动态页面的技术,本质上就是Servlet。将HTML代码嵌入到Java代码中, 通过Java逻辑控制HTML代码的结构从而生成页面。在MVC中通常担任视图层(view),负责信息的展示与收集。 2…...

2023世界超高清视频产业发展大会博冠8K明星展品介绍

2023世界超高清视频产业发展大会博冠8K明星展品介绍: 一、博冠8K全画幅摄像机B1 这是一款面向广电应用的机型,可适配外场ENG制作轻量化需求,应用于8K单边机位、新闻、专题的拍摄工作,也可应用于体育转播、文艺节目等特殊机位及各…...

Map接口以及Collections工具类

文章目录 1.Map接口概述1.1 Map的实现类的结构1.2 Map中存储的key-value结构的理解1.3 HashMap的底层实现原理(以JDK7为例)1.4 Map接口的常用方法1.5 TreeMap1.6 Map实现类之五: Properties 1.Collections工具类1.1方法1.1.1 排序操作(均为static方法)1.1.2 查找、替换 1.Map接…...

SOA协议DDS和Some/IP对比

SOME/IP 和 DDS 均已被纳入AUTOSAR AP的平台标准中。 SOME/IP 和 DDS是在不同的应用场景和不同的需求下诞生的技术,所以它们之间注定有很大的区别。 SOME/IP SOME/IP的全称为:Scalable service-Oriented MiddlewarE over IP,是一种面向服务…...

Sass使用

前言: 这份记录,主要是记录学习sass的学习记录,用于记录一些本人认为可能以后会用到的比较常用的一些知识点,更详细的请看sass官网 功能1-嵌套规则 Sass 允许将一套 CSS 样式嵌套进另一套样式中,内层的样式将它外层的…...

超大excel文件读,避免内存溢出

excel40M&#xff0c;但是用传统的读取excel方法&#xff0c;会报内存溢出的错误。 所以采用了下面的方式&#xff0c;能解决此问题&#xff1a; maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><ve…...

第0章 学习之前的准备

突然想写点关于linux的东西&#xff0c;一是将自己几十年来零碎的知识作以串联&#xff0c;二是能为正在学习路上的新手作些指引。而恰好作者的孩子是一位初一的学生&#xff0c;我写的这些东西也正是我手把手教授他的&#xff0c;现在分享出来并且命名为《linux中学教程》&…...

数组排序sort()方法

sort() 方法对数组的项目进行排序。 排序顺序可以是按字母或数字&#xff0c;也可以是升序&#xff08;向上&#xff09;或降序&#xff08;向下&#xff09;。 默认情况下&#xff0c;sort() 方法将按字母和升序将值作为字符串进行排序。 一、语法 array.sort(compareFunct…...

【.NET AI Books 前言】Azure OpenAI Service 入门

本书是为 .NET 开发者而写的&#xff0c;让 .NET 开发者能快速掌握 Azure OpenAI Service 的使用技巧。 ChatGPT 的到来意味着我们已经置身于 AI 引起的全新变革中&#xff0c;作为开发者你可能将面临几种改变&#xff1a; GPT 模型到来后&#xff0c;如何去架构好企业解决方案…...

散列查找实验(开散列) 题目编号:583

题目描述 请设计一个整型开散列表&#xff0c;散列函数为除留余数法&#xff0c;其中散列表的长度、除留余数法的模和关键码的个数由键盘输入&#xff0c;再根据输入由键盘输入所有的关键码。分别对三个待查值在散列表中进行查找&#xff0c;输出查找结果采用头插法。 输入描…...

Java版spring cloud 企业工程项目管理系统平台源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…...

Go type关键字定义新类型和类型别名的区别

type关键字再定义类型和类型别名有很大的区别&#xff0c;前者是新定义一个数据类型&#xff0c;后者是对类型的重命名。 type NewString stringtype OldString stringtype NewString string声明了一个NewString类型&#xff0c;和string具有完全一致的数据结构&#xff0c;确…...

Neural Network学习笔记2

torch.nn: Containers: 神经网络骨架 Convolution Layers 卷积层 Pooling Layers 池化层 Normalization Layers 正则化层 Non-linear Activations (weighted sum, nonlinearity) 非线性激活 Convolution Layers Conv2d torch.nn.Conv2d(in_channels, out_channels, ke…...

用@Value注解为bean的属性赋值

1.Value注解 Value注解的源码&#xff0c;如下所示 Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE}) Retention(RetentionPolicy.RUNTIME) Documented public interface Value {String value(); }从Value注解的源码中…...

拨云见日:深入理解 HTML 解析器与有限状态机

文章目录 参考描述状态机状态机有限状态机与无限状态机有限状态机与自动售货机无限状态机与计算器 HTML 解析器HTML 解析器HTML 与有限状态机 HTML 解析器的常见状态初始状态DOCTYPE 状态注释状态标签状态开始标签状态属性状态属性名状态属性值状态 结束标签状态自闭和标签状态…...

Java线程池及其实现原理

线程池概述 线程池&#xff08;Thread Pool&#xff09;是一种基于池化思想管理线程的工具&#xff0c;经常出现在多线程服务器中&#xff0c;如MySQL。 线程过多会带来额外的开销&#xff0c;其中包括创建销毁线程的开销、调度线程的开销等等&#xff0c;同时也降低了计算机…...

进程替换函数组介绍exec*

目录 前述 execl execlp execle execv execvp execvpe 前述 介绍后缀的意义&#xff1a; l &#xff08;list&#xff09;&#xff1a;表示参数采用列表。 v&#xff08;vector&#xff09;&#xff1a;参数同数组表示。 p&#xff08;path&#xff09;&#xff1a;自…...

欧科云链OKLink:2023年4月安全事件盘点

一、基本信息 2023年4月安全事件共造约6000万美金的损失&#xff0c;与上个月相比&#xff0c;损失金额有所降落&#xff0c;但安全事件数量依旧不减。其中&#xff0c;Yearn Finance因参数配置错误&#xff0c;导致了1000多万美金的损失。同时&#xff0c;有一些已经出现过的…...

KubeVirt备份与还原方案【翻译】

KubeVirt备份与还原方案【翻译】 ref:https://github.com/kubevirt/kubevirt/blob/main/docs/backup-restore-integration.md 备份 为所有必需的k8s资源构建依赖关系图冻结应用程序pvc数据快照解冻应用程序将所有必需的k8s资源定义拷贝到一个共享的存储位置&#xff08;可选…...

使用PyQt5设计一款简单的计算器

目录 一、环境配置&#xff1a; 二、代码实现 三、主程序 四、总结 本文使用PyQt5设计一款简单的计算器&#xff0c;可以通过界面交互实现加减乘除的功能&#xff0c;希望能够给初学者一些帮助。主要涉及的知识点有类的定义与初始化、类的成员函数、pyqt5的信号与槽函数等。…...

Htop使用说明

目录 引言 什么是htop htop安装 htop界面介绍 htop功能介绍 引言 我们使用服务器的时候常常需要关注下自己的程序资源占用情况&#xff0c;htop就是一种互动式的进程查查看器&#xff0c;整齐用下来感觉比top的逼格高&#xff0c;造作可视化都更方便些&#xff0c;我觉得还…...

PostgreSQL Linux安装

安装依赖&#xff1a; sudo yum -y install readline-devel zlib-devel 安装Postgres&#xff1a; ssh hadoophadoop001 #下载Postgres wget https://ftp.postgresql.org/pub/source/v14.2/postgresql-14.2.tar.gz tar -zxvf postgresql-14.2.tar.gz -C /data #编译前准备 /dat…...

亚商投资顾问 早餐FM/0509车辆电动化

01/亚商投资顾问 早间导读 1.上交所拟于5月11日举办“发现央企投资价值&#xff0c;促进央企估值回归”交流会 2.监管部门十方面举措加强房地产经纪行业管理 3.广东&#xff1a;推动城市公共服务及货运配送车辆电动化替代 4.昆山两楼盘因大幅降价被暂停网签&#xff1a;降幅…...

AI绘画天花板——Midjourney注册使用保姆级教程(5月5日验证有效)

大家好&#xff0c;我是可夫小子&#xff0c;关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加我&#xff0c;备注&#xff1a;aigc&#xff0c;拉你进群。 现在市面上AI绘图大概有三大阵营&#xff1a;Midjourney、Stable Diffusion&#xff0c;还有一个就是OpenAI实…...

学习笔记(2)项目结构描述 - manifest.json和pages.json

目录 1&#xff0c;manifest.json2&#xff0c;pages.json2.1&#xff0c;pages2.2&#xff0c;globalStyle2.3&#xff0c;tabBar 1&#xff0c;manifest.json 官方详情 uni-app 的 appid 由 DCloud 云端分配&#xff0c;主要用于 DCloud 相关的云服务&#xff0c;请勿自行修…...

vector、deque、list相关知识点

vector erase返回迭代器指向删除元素后的元素insert返回迭代器指插入的元素reserve只给容器底层开指定大小内存空间&#xff0c;并不添加新元素 deque 底层数据结构 动态开辟的二维数组&#xff0c;一维数组从2开始&#xff0c;以2倍方式扩容&#xff0c;每次扩容和&#x…...

多维时序 | MATLAB实现基于VMD-SSA-LSSVM、SSA-LSSVM、VMD-LSSVM、LSSVM的多变量时间序列预测对比

多维时序 | MATLAB实现基于VMD-SSA-LSSVM、SSA-LSSVM、VMD-LSSVM、LSSVM的多变量时间序列预测对比 目录 多维时序 | MATLAB实现基于VMD-SSA-LSSVM、SSA-LSSVM、VMD-LSSVM、LSSVM的多变量时间序列预测对比预测效果基本介绍程序设计学习总结参考资料 预测效果 基本介绍 多维时序 …...

登陆空间商网站/网站推广技巧

内外左右 内外左右 join字段 判断有不一定有&#xff0c;判断没有一定没有。 特点&#xff1a;判断有不一定有&#xff0c;判断没有一定没有。 多行输入&#xff0c;end键到每行最后&#xff0c; 每天的成交额 每年的成交额 new group 使用groupingsets case when&#x…...

成熟网站开发单位/关键词分类工具

Cause: You have used the DBMS_MVIEW.EXPLAIN_MVIEW() API before you have defined the MV_CAPABILITIES_TABLE.Action: Invoke the ORACLE_HOME/rdbms/admin/utlxmv.sql script after connecting to the desired schema....

公司网站代码模板下载/重庆seo排名优化费用

爬取多个网页 讲师的博客&#xff1a;https://www.cnblogs.com/wupeiqi/p/6229292.html在编写爬虫时&#xff0c;性能的消耗主要在IO请求中&#xff0c;当单进程单线程模式下请求URL时必然会引起等待&#xff0c;从而使得请求整体变慢。比如找10个国外的资源爬取&#xff0c;慢…...

海安建设局网站/百度搜索排名

​线程本地存储又叫线程局部存储&#xff0c;英文名称为Thread Local Storage&#xff0c;简称TLS&#xff0c;实质上是线程私有的全局变量而已。 普通全局变量在多线程中是共享的&#xff0c;一个线程对其进行了修改&#xff0c;其它所有线程都可以看到&#xff0c;而线程私有…...

wordpress建立个人网站/企业推广文案范文

...

apache 写wordpress/子域名大全查询

2048设计报告毕业论文(设计)题目基于Android系统2048一、选题依据(包括目的、意义、国内外现状和发展趋势&#xff0c;主要参考文献)最近以来&#xff0c;移动手游越来越成为当下游戏产业中重要的一环&#xff0c;市场也在加大对这一产业的投入&#xff0c;涌现出了愤怒的小鸟&…...