打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel报表再处理(二):统计成绩表的总分与平均分

        先按图示自行建立Excel成绩表格或者直接复制易点成绩统计软件演示文件夹的“2011年高三级第一学期期末考试成绩表.xls”,在打开的Excel表格按《Excel报表再处理(一)》文中所述的方法在VBA编辑器里选择BeforeDoubleClick事件(工作表双击事件之前触发)后输入如下代码:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim studentCount, subjectCount As Integer
    studentCount = 463
    subjectCount = 5
    Sheet1.Cells(2, 9) = "总分"
    Sheet1.Cells(2, 10) = "平均分"
    For i = 1 To studentCount
       Sheet1.Cells(i + 2, 9) = Sheet1.Cells(i + 2, 4) + Sheet1.Cells(i + 2, 5) + Sheet1.Cells(i + 2, 6) + Sheet1.Cells(i + 2, 7) + Sheet1.Cells(i + 2, 8)
       Sheet1.Cells(i + 2, 10) = Sheet1.Cells(i + 2, 9) / subjectCount
    Next
End Sub

        分析一下代码,大家可以参考代码后的注释进行理解。

    Dim studentCount, subjectCount As Integer    '显式定义2个变量为整形,你想偷懒的话也可以不定义直接赋值,作用范围只有函数内部
    studentCount = 463    '学生数
    subjectCount = 5        '学科数
    Sheet1.Cells(2, 9) = "总分"    '标题行在第2行,第9列的单元格赋值“总分”
    Sheet1.Cells(2, 10) = "平均分"    '标题行在第2行,第10列的单元格赋值“平均分”
    For i = 1 To studentCount    '把表格的所有学生做一个循环以计算他们的总分和平均分
       Sheet1.Cells(i + 2, 9) = Sheet1.Cells(i + 2, 4) + Sheet1.Cells(i + 2, 5) + Sheet1.Cells(i + 2, 6) + Sheet1.Cells(i + 2, 7) + Sheet1.Cells(i + 2, 8)    'i+2其中2是因为顶部有2行用于标题,后面是当前行的几个学科分值,学科多的话你也可以加个循环
       Sheet1.Cells(i + 2, 10) = Sheet1.Cells(i + 2, 9) / subjectCount    '算完总分再除以学科数就可以得到平均分了
    Next

        就这几行代码,回来在工作表上双击后所有学生的总分和平均分就统计出来了,以后你就可以把带有宏的工作簿做样本文件进行数据录入,完成后在宏里面改下参数就可以重复相同的统计了。当然在软件设计里就没这么简单了,软件里会生成班级类、学生类等等,然后导入数据的时候会根据类创建一个个班级、学生等对象后再进行统计,这些就要复杂得多了当然只有这样才能灵活地解决各种复杂的需求。

L.Q.R  210403(待继)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用VB操作excel方法汇总
Excel VBA语句集
自学资料(Excel VBA)[收集整理15]
VBA统计一个EXCEL工作薄内多张工作表内最大行数的方法
禁止Excel工作薄文件被拷贝复制的方法
如何在vfp中调用excel实现图、表的制作(之八)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服