当前位置:中国星空学习网首页>办公应用>Excel>正文  
Excel宏的应用-成绩分析处理程序

 

    Excel电子表格软件是应用最广泛的软件之一,它的数据处理、图表功能及各种函数和工具深受广大用户的喜爱。Excel文件是一个工作薄,一个工作薄最多可以包含255个工作表,每个工作表又可以包含大量的数据。

  Excel的强大优势还在于它提供的宏语言Visual Basic for Application(VBA).Visual Basic是windows环境下开发应用软件的一种通用程序设计语言,功能强大,简便易用。VBA是它的一个子集,可以广泛地应用于Microsoft公司开发的各种软件中,例如Word、Excel、Access等。

  那么,"宏"到底是什么呢?

  在Excel 97中,"宏"是一个难以理解的概念,但对于一个具体的"宏"而言,却是容易理解的,如果说"将一块文字变为'黑体',字号为'三号'"就可以看作一个"宏"的话,那么"宏"就不难理解了,其实Excel 97中的许多操作都可以是一个"宏"。

  "记录宏"其实就是将工作的一系列操作结果录制下来,并命名存储(相当于VB中一个子程序)。在Excel 97中,"记录宏"仅记录操作结果,而不记录操作过程。例如,改变文字字体时,需要打开"字体"栏中的下拉列表,再选择一种字体,这时文字即变为所选择的字体,这是一个过程,结果是将所选择的文字改变为所选择的字体。而"记录宏"则只记录"将所选择的文字改变为所选择的字体"这一结果。

  Excel 97中工作表是由行和列组成的二维表格,我们可以通过系统提供的语句activesheet.cells(I,j),将当前工作表中的第I行第j列所在的单元格中的数据取出(也可将它数据填入到指定的单元格中),然后反把它放入所定义的数组中,这时就可以对其进行各种操作,如求平均分、总分、分数段人数等等。

  本人就利用Excel 97中所提供的宏功能来做学生成绩的分析处理程序。本程序是Excel中的一个文件,其中包含以下几个宏:分班、总分、平均分、分数段、删除等。

    本程序是以本校高三理科班学生成绩进行分析。

  有关程序中用到的几具宏的功能说明:

  分班:针对于难以确定班级的情况下,以班为单位进行分班,本宏可以作为高一新生入学时进行分班的功能。

  总分:对原始的成绩自动求总分。

  平均分:对原始的成绩以班为单位进行各学科平均成绩的计算及全校各学科成绩的计算。

  分数段:给定一个最高分数及最低分数,然后统计出各班各个分数段的人数,各分数段人数进行累计。

  删除:用于删除不用的工作表。

  现将各个宏的代码列举如下:

    一.分班 
 
 Sub 分班()
Const studentno = 191 '学生人数
Const zdno = 12 '字段数
Dim zd$(zdno) '定义为12个字段的数组
Dim a(studentno, zdno), stu(60, zdno)
Dim nam$(studentno), bjname$(60) '定义一个存放全校学生名字及各班学生名字的数组
Dim bj(studentno) '定义存放班级的一个数组
'理科班工作表
Sheets("高三理").Select
For i = 2 To studentno
 bj(i) = ActiveSheet.Cells(i, 1)
 nam$(i) = ActiveSheet.Cells(i, 2)
 For j = 3 To zdno
  a(i, j) = ActiveSheet.Cells(i, j)
 Next j
Next i
'存放字段到数组中。
For i = 1 To zdno
 zd$(i) = ActiveSheet.Cells(1, i)
Next i
'先建立各个班级的工作表
  Sheets("高三理").Select
  Sheets("高三理").Copy After:=Sheets("分数段")
  Sheets("高三理 (2)").Select
  Sheets("高三理 (2)").Name = "33"
  For i = 2 To studentno
    For j = 1 To zdno
        ActiveSheet.Cells(i, j) = Space$(1)
    Next j
  Next i
  Range("a1").Select
  For i = 1 To zdno
    ActiveSheet.Cells(1, i) = zd$(i)
  Next i
'34到36班工作表的建立
  For i = 34 To 36
    x$ = Mid$(Str(33), 2)
  Sheets(x$).Select
  Sheets(x$).Copy After:=Sheets("分数段")
  Sheets(x$ + " (2)").Select
  Sheets(x$ + " (2)").Name = Mid$(Str(i), 2)
  Next i
'具体分班。
 For k = 33 To 36
  bjrs = 0
  x$ = Mid$(Str(k), 2)
  no = k Mod 10
  Sheets(x$).Select
  For i = 2 To studentno
    If bj(i) = no Then
      bjrs = bjrs + 1
      bjname$(bjrs) = nam$(i)
      For j = 3 To zdno
       stu(bjrs, j) = a(i, j)
      Next j
    End If
  Next i
 For i = 2 To bjrs
  ActiveSheet.Cells(i, 1) = no
  ActiveSheet.Cells(i, 2) = bjname$(i)
  For j = 3 To zdno
   ActiveSheet.Cells(i, j) = stu(i, j)
  Next j
 Next i
 Next k
End Sub
 
    二.总分 
 
 Const studentno = 190
Const xknum = 6
Const zdnum = 12
 Sheets("高三理").Select
  For i = 2 To studentno + 1
   Sum = 0
   For j = 1 To xknum
    Sum = Sum + ActiveSheet.Cells(i, j + 3)
   Next j
   ActiveSheet.Cells(i, zdnum-1) = Sum
  Next i
End Sub

三.平均分 
 
 Sub 平均分()
Const studentno = 190
Const xknum = 6
Dim fs(studentno, xknum), pjf3(4, 6), bjrs(4), qxpjf(6)
Dim bj(studentno)
Sheets("高三理").Select
'以下程序段用于求全校平均分
For i = 1 To studentno
 bj(i) = ActiveSheet.Cells(i + 1, 1)
 For j = 1 To xknum
  fs(i, j) = ActiveSheet.Cells(i + 1, j + 3)
 Next j
Next i
For i = 1 To xknum
 Sum = 0
  For j = 1 To studentno
   um = Sum + fs(j, i)
  Next j
  qxpjf(i) = Sum / (j - 1)
Next i
'以下程序段用于求各班平均分
  For j = 1 To 4
   For i = 1 To studentno
    Ifbj(i) = j + 2 Then
      bjrs(j) = bjrs(j) + 1
      For k = 1 To xknum
        pjf3(j, k) = pjf3(j, k) + fs(i, k)
      Next k
    End If
   Next i
  Next j
For j = 1 To 4
 For i = 1 To 6
  pjf3(j, i) = pjf3(j, i) / bjrs(j)
 Next i
Next j
'写入各班各科平均分
Sheets("平均分").Select
For i = 1 To 4
 For j = 1 To 6
  ActiveSheet.Cells(i + 2, j + 1) = pjf3(i, j)
 Next j
Next i
'写入全校各科平均分
i = 7
For j = 1 To 6
 ActiveSheet.Cells(i, j + 1) = qxpjf(j)
Next j
End Sub
 

[1] [2] 下一页

本新闻共2页,当前在第1页  1  2  

 

上一篇: 提高EXCEL录入速度十大绝招
下一篇: 盖章”——我选用Excel
站内公告
栏目导航
 Windows系统
 Linux/DOS
 办公应用
 工具软件
 图形图象
 网络应用
 安全防御
 网络编程
 软件教程
 实用技术
最新文章
中国星空图片网
·人体艺术
·性感美眉
·生活自拍
·幽默搞笑
·超级帅哥
·精彩万花筒
·梦幻景色
中国星空探索网
·神秘追踪 灵异接触
·鬼故事 灵异空间 图片
·未解之谜 探索宇宙
中国星空两性网
·两性图文 我的性事 情人 成人幽默
·性爱技巧 两性测试 性爱误区
·性事花边 生育避孕 性保健 性疾病
·两性生理 文化 讨论 心理 知识
·爱人同志 非常男女 一夜情
中国星空算网命
·手机吉凶 QQ号码吉凶 周公解梦
·塔罗牌测试 狗年运程
·关公灵签 紫薇斗数 八字排盘
·测试:你的成功指数有多少
·测验你的家庭是否美满?
·面相: 面型 眼睛 耳朵 口唇
·手相:拉你一把奶油桂花手
·测试:你能成为大富翁吗?
联系方式 设为首页
中国星空旗下---中国星空学习网    Copyright 2005-2050 Year   xx.happy369.com  Networks.All rights reserved
中国星空网所有内容均来源于网络,版权属于原作者,如侵犯到您的权益,请与我们联系,我们将尽快予以删除或处理。
中国星空不承担由于内容的合法性及健康性所引起的一切争议和法律责任。
陕ICP备05011765号 联系我们 
《女人如烟》--演唱:魏佳艺