当前位置: 首页 > 图文教程 > 工具软件 > 办公软件 > Excel中用宏和VBa自动统计成绩

办公软件
简单合并word文档
Word中利用样式添加目录
Word公式编辑器的安装
Word XP巧画禁烟标志
“自动更正”巧输特殊字符
Word2000 中的层和矢量
Word2000制作滚动字幕墙纸
Word2002中保持字数限制
Word输入左右结构生僻字
Word中的域和公式
Word中方便快捷地插入图标
Word添加一个分数输入命令
Word打印预览模式下编辑文字
Word 2002自动提取文档目录
用Word设计试卷密封线
Word中随意插入独立页码
Word 2000格式处理技巧
Word ”出红”的挽救与预防
巧用Word XP中的双击
Word中图片保存另一法

办公软件 中的 Excel中用宏和VBa自动统计成绩


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 149 ::
收藏到网摘: n/a

    在学校的教学活动中,通过统计分析学生的考试成绩,了解教学情况,为改进以后的教学工作提供依据,是整个教学工作中非常重要一环。但经常按各种不同的指标统计分析成绩,又是一件很枯燥,很繁琐的事。哪么,能否对需统计的各种指标,无需人工干预,让计算机自动完成呢?答案是肯定的,笔者通过Excel中自带的Vba,实现了这个设想。为能给被统计成绩困扰的朋友提供一些帮助,下面以我校高中三年级理科成绩统计为例,介绍其作法,供大家参考。

  1. 设计流程,编制程序源代码:为便于说明做法,同时代码简短一点,这里以我校高三理科1-4班成绩统计为例,说明其做法。另外为使编写代码效率高一些,这里采用先录制一部分为宏,再在vba中打开编辑相结合的办法编写。

  ① 从外部的“考试成绩.XLS”工作簿中将1-4班的成绩拷贝,依次粘贴到“成绩统计表.XLS”工作簿中的“理科”表中;

  程序源代码:

  Sub 拷外部理科0()

  ActiveWindow.WindowState = xlMinimized

  Windows("考试成绩.xls").Activate

  ActiveWindow.WindowState = xlMaximized

    Sheets("1班").Select

    Range("A1:S60").Select

    Selection.Copy

    ActiveWindow.WindowState = xlMinimized

  Windows("成绩统计表.xls").Activate

  ActiveWindow.WindowState = xlMaximized

  Sheets("理科").Select

  ActiveWindow.ScrollRow = 1

  Range("A1").Select

  ActiveSheet.Paste

  拷贝“考试成绩簿”中的1班成绩表中数据,粘贴到到成绩统计表工作簿的理科表A1

  Range("S22").Select

  ActiveWindow.LargeScroll Down:=1

  Range("S44").Select

  ActiveWindow.LargeScroll Down:=1

  Range("S66").Select

  Windows("考试成绩.xls").Activate

  ActiveWindow.WindowState = xlNormal

  Sheets("2班").Select

  Range("A2").Select

  ActiveWindow.SmallScroll Down:=43

  Range("A2:S58").Select

  Application.CutCopyMode = False

  Selection.Copy  

    Windows("成绩统计表.xls").Activate

  ActiveWindow.WindowState = xlNormal

  Range("A61").Select

  ActiveSheet.Paste

  拷贝考试成绩簿中的2班成绩表中数据,粘贴到“成绩统计”工作簿的理科表A61

  Windows("考试成绩.xls").Activate

  ActiveWindow.WindowState = xlNormal

  Sheets("3班").Select

  Range("A1:S59").Select

  Application.CutCopyMode = False

  Selection.Copy

  Windows("成绩统计表.xls").Activate

  ActiveWindow.WindowState = xlNormal

  Range("S58").Select

  ActiveWindow.LargeScroll Down:=1

  Range("S80").Select

  ActiveWindow.LargeScroll Down:=1

  Range("S102").Select

  ActiveWindow.LargeScroll Down:=1

  Range("A118").Select

  ActiveSheet.Paste

  拷贝成绩簿中的3班成绩表中数据,粘贴到成绩统计表工作簿的理科表A118

  Rows("118:118").Select

  Application.CutCopyMode = False

  Selection.Delete Shift:=xlUp

  Range("D122").Select

  Windows("考试成绩.xls").Activate

  ActiveWindow.WindowState = xlNormal

  Sheets("4班").Select

  Range("A2:S71").Select

  Selection.Copy

  Windows("成绩统计表.xls").Activate

  ActiveWindow.WindowState = xlNormal

  ActiveWindow.LargeScroll Down:=1

  Range("D144").Select

  ActiveWindow.LargeScroll Down:=1

  Range("D166").Select

  ActiveWindow.LargeScroll Down:=1

  Range("D188").Select

  ActiveWindow.LargeScroll Down:=-1

  Range("A176").Select

    ActiveSheet.Paste‘拷贝四班成绩

  End Sub



  ② 利用Excel的统计函数“RANK”将理科表中学生的各科成绩排名次;目的是让每位学生了解自己在全年级学生中的排名的位置。

  程序代码如下:

  Sub 理名次()

  Range("D2").Select

  ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R2C3:R246C3,0)"

  Selection.Au