excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel VBA自动计算学生总分、平均分和排名

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

源数据

功能效果

完整代码

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

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接