算平均分最简单的方法,如何计算加权平均分举例

首页 > 教育 > 作者:YD1662023-04-16 06:51:33

今天介绍一段VBA代码,是对一个学生信息表格进行统计和排名,并对结果表格进行样式设置的功能。它可以用于教育机构、培训机构、企业内部培训等场景,对学生的成绩、学习情况等进行统计和排名,以便于管理者更好地了解每个学生的情况,并针对个体情况做出相应的决策。也可用来帮助初学者了解 VBA 的基本语法和常见操作。

源数据

算平均分最简单的方法,如何计算加权平均分举例(1)

功能效果

算平均分最简单的方法,如何计算加权平均分举例(2)

完整代码

Sub CalculateGrade() Dim i As Integer Dim total, avg, rank As Double ' 循环处理每个学生 For i = 2 To Range("A" & Rows.Count).End(xlUp).Row ' 从第2行开始到最后一行循环 ' 计算总分 Range("F1").Value = "总分" ' 将F1单元格的值设置为“总分” total = Application.Sum(Range("B" & i & ":E" & i)) ' 计算该行B到E列的总和 Range("F" & i).Value = Format(total, "#.00") ' 将总分格式化为两位小数并赋值到F列 ' 计算平均分 Range("G1").Value = "平均分" ' 将G1单元格的值设置为“平均分” avg = total / 4 ' 计算平均分 Range("G" & i).Value = Format(avg, "#.00") ' 将平均分格式化为两位小数并赋值到G列 ' 计算排名 Range("H1").Value = "排名" ' 将H1单元格的值设置为“排名” rank = Application.WorksheetFunction.rank(avg, Range("G$2:G$" & Range("A" & Rows.Count).End(xlUp).Row)) ' 计算平均分在G列中的排名 Range("H" & i).Value = rank ' 将排名赋值到H列 Next i ' 按照排名升序排列F列 Range("A1").CurrentRegion.Sort Key1:=Range("H2"), Order1:=xlAscending, Header:=xlYes ' 按照H列的值升序排列当前区域,即将学生信息表按照平均分的升序排列 ' 设置结果表格的样式 With Range("A1").CurrentRegion .Borders.LineStyle = xlContinuous ' 设置单元格边框线为连续线 .Font.Name = "微软雅黑" ' 设置字体为“微软雅黑” .Font.Size = 12 ' 设置字号为12 ' 只修改第一行标题行的样式 With Rows(1) .Font.Size = 12 ' 设置字号为12 .Font.Bold = True ' 设置字体加粗 .Font.Name = "微软雅黑" ' 设置字体为“微软雅黑” .ColumnWidth = 10 ' 设置列宽为10 End With ' 修改除标题行外的单元格样式 With .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count) .Font.Size = 10 ' 设置字号为10 End With End With ' 选中A1单元格 Range("A1").Select ' 选中A1单元格 End Sub

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.