巧用Excel VBA进行考试成绩登分录入

本程序下载下址

http://wenku.baidu.com/view/dbe60ce7482fb4daa48d4b85.html

 

登分是每次考试后不可少的工作,21世纪各种考试的成绩统计已经进入电脑时代,但登分工作却大多停留于“刀耕火种”年代——预先整理试卷、按座位号登分,重复数据手工查找……。笔者所在学校甚至还在使用最原始方法——评卷、拆卷、分班、登分。班级多,人数多,时间紧,不仅使得工作人员疲倦不堪,同时也出现不少的错误数据。鉴于此,笔者根据本校实际情况,用Excel VBA编了个程序,免去了按学号顺序登分之苦,也免去了登分前整理试卷之累,甚至避免了按记分册登分的查找不便之处,让教师可左手翻试卷,右手敲键盘登分,一气呵成。

程序需建立花名册(如图1)及登分(如图2)两个工作表,工作人员先在花名册工作表录入考生信息,如学号(或考号)、姓名、班级等,然后在登分工作表的第一列输入分数、第二列输入考生信息进行模糊查找,查找结果通过列表显示,你只需轻按键盘(UpDownLeftRightEnterEsc键)选择正确的学生信息即可快速录入。

巧用Excel <wbr>VBA进行考试成绩登分录入

1

巧用Excel <wbr>VBA进行考试成绩登分录入

2

程序代码简单,先在登分工作表新建两个 ActiveX 控件——文本框TextBox1和列表框ListBox1,然后为他们添加相关事件代码。

我们在工作表第二列激活的单元格里输入查询的关键字其实是一种错觉,实际上是用一个与单元格一模一样的文本框覆盖着单元格,其实输入到的是文本框内,为使文本框及列表框能随单元格的选择而相应改变,必须为工作表添加单元格激活事件代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error Resume Next    '设置容错语句,防止操作出错时卡住

 Application.EnableEvents = False  '禁用事件

 If ListBox1.Visible Then ListBox1.Visible = False

 If TextBox1.Visible Then TextBox1.Visible = False

 ListBox1.Clear  '清除列表

 With Target  '激活的单元格

     If .Column = 2 And .Row <> 1 Then  '属于第二列,并且不是第一行

         '设置TextBox1跟随单元格,如大小、位置、填充颜色、字体等要一致

TextBox1.Top = .Top + 1

         TextBox1.Left = .Left + 1

         TextBox1.Width = .Width - 1

         TextBox1.Height = .Height - 0.1

        

         '设置ListBox1位置跟随单元格变化

         If .Row > ActiveWindow.VisibleRange.Rows.Count + ActiveWindow.VisibleRange.Row - 5 Then

            ListBox1.Top = .Top - ListBox1.Height

         Else

            ListBox1.Height = .Height * 5

            ListBox1.Top = .Top + .Height + 1

         End If

         ListBox1.Left = .Left + .Width + 1

         ListBox1.Width = .Width * (Sheet3.UsedRange.Columns.Count + 1)

         TextBox1.BackColor = .Interior.Color

         TextBox1.ForeColor = .Font.Color

         TextBox1.Font.Size = .Font.Size

         TextBox1 = .Value

         TextBox1.Visible = True

         ListBox1.Visible = True

 

         TextBox1.Activate

         Call TextBox1_Change

 

         TextBox1.SelStart = 0

         TextBox1.SelLength = 1000

     End If

 End With

 Application.EnableEvents = True

End Sub

为了能随着输入查询关键字不断的进行模糊查找,需为TextBox1添加Change事件,并用Find方法实现查找功能。代码如下:

Private Sub TextBox1_Change()

Dim firstAddress As String, rng As Range, Arr() As String '声明需要用到的变量

TextBox1.Visible = True

ListBox1.Visible = True

ListBox1.Clear

TextBox1.TopLeftCell.Value = TextBox1.Text '激活的单元格内容与文本框一致

If TextBox1 = "" Then Exit Sub

 

  K=-1

  With  Worksheets ("花名册").UsedRange

L = .Columns.Count + .Column – 1 '总列数

 

'按值模糊查找

    Set rng = .Find(TextBox1.Text, LookIn:=xlValues, Lookat:=xlPart)

    If Not rng Is Nothing Then  '如果找到目标

      firstAddress = rng.Address  '记录第一个找到单元格的地址

      Do  '继续查找,直到找到的单元格地址等于刚才记录的单元格地址时停止

        k=k+1

Redim Preserve Arr(k)  '重新定义数组

 

'查找结果读入数组

Arr(k)= .Cells(rng.Row, 1)

For i = 2 To L

            Arr(k)= Arr(k)  & vbTab & .Cells(rng.Row, i)

        Next

 

        Set rng = .FindNext(rng)  '查找下一个

      Loop While rng.Address <> firstAddress

 

ListBox1.List = Arr  '查找结果写入列表框

    End If

  End With

End Sub

为使文本框及列表框能响应UpDownLeftRightEnterEsc键,需为TextBox1ListBox1添加KeyDown事件代码。

Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

On Error Resume Next    '设置容错语句,防止操作出错时卡住

Select Case KeyCode

    Case 13 '回车Enter

        If ListBox1.ListCount > 0 Then

            If ListBox1.Text = "" Then ListBox1.ListIndex = 0 '如果没有选中项目,默认选中第一个项目

            Dim Arr

            Arr = Split(ListBox1.Value, vbTab) '将选中的项目文本转换为数组

            With TextBox1

                .Visible = False

                .TopLeftCell.Value = .Text  '当前单元格内容为文本框内容

               

                '将选中项目内容写入工作表

With .TopLeftCell.Offset(0, 1).Resize(1, UBound(Arr))

                    .Value = Arr

                    .Value = .Value

                End With

 

                .TopLeftCell.Offset(1, 0).Select '激活当前单元格的向下的一个单元格

            End With

            KeyCode = 0

        End If

    Case 37 'Left向左键

        TextBox1.Activate '激活文本框以输入查询关键字

    Case 27 'Esc取消

        TextBox1.Visible = False

        ListBox1.Visible = False

End Select

End Sub

 

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

On Error Resume Next

Dim Arr

With TextBox1

    Select Case KeyCode

        Case 38 'UP向上键

            '激活当前单元格的上一单元格

.Visible = False

            .TopLeftCell.Value = .Text

            .TopLeftCell.Offset(-1, 0).Select

            KeyCode = 0

        Case 13 'Enter回车

            '输入列表框第一个项目内容至工作表并激活当前单元格的下一单元格

If ListBox1.ListCount > 0 Then

                Arr = Split(ListBox1.List(0), vbTab)

                .Visible = False

                .TopLeftCell.Value = .Text

                With .TopLeftCell.Offset(0, 1).Resize(1, UBound(Arr))

                    .Value = Arr

                    .Value = .Value

                End With

                .TopLeftCell.Offset(1, 0).Select

                KeyCode = 0

            End If

        Case 40 'Down向下键

            '激活当前单元格的下一单元格

.Visible = False

            .TopLeftCell.Value = .Text

            .TopLeftCell.Offset(1, 0).Select

            KeyCode = 0

        Case 37 'Left向左键

            '输入列表框第一个项目内容至工作表并激活当前单元格的左一单元格

.Visible = False

            If ListBox1.ListCount > 0 Then

                Arr = Split(ListBox1.List(0), vbTab)

                .TopLeftCell.Value = .Text

                With .TopLeftCell.Offset(0, 1).Resize(1, UBound(Arr))

                    .Value = Arr

                    .Value = .Value

                End With

            End If

            .TopLeftCell.Offset(0, -1).Select

            KeyCode = 0

        Case 39 'Right向右键

            ListBox1.Activate '激活列表框

        Case 27 'Esc取消

            .Visible = False

            ListBox1.Visible = False

            Selection.Select

    End Select

End With

End Sub

为了能用鼠标双击点选项目实现输入,效果等同按下Enter键,需为ListBox1添加DblClick事件代码。

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

On Error Resume Next    '设置容错语句,防止操作出错时卡住

If ListBox1.ListCount > 0 Then

    If ListBox1.Text = "" Then ListBox1.ListIndex = 0 '如果没有选中项目,默认选中第一个项目

    Dim Arr

    Arr = Split(ListBox1.Value, vbTab)

    With TextBox1

        .Visible = False

        .TopLeftCell.Value = .Text

        With .TopLeftCell.Offset(0, 1).Resize(1, UBound(Arr))

            .Value = Arr

            .Value = .Value

        End With

        .TopLeftCell.Offset(1, 0).Select

    End With

End If

End Sub

登分结束后,可能会出现一些错误数据,如分数超科目满分、重复录入等,也可能出现录入分数而没录入学生信息或反之,还可能出现某几个学生没有录入的情况。程序设计了查错代码进行检查并给出检查结果,同时在登分工作表末录入未登分的学生信息。

Public Sub ChaCuo() '查错

On Error Resume Next    '设置容错语句,防止操作出错时卡住

Application.ScreenUpdating = False

Application.DisplayAlerts = False

 

'写入数组-----------

Dim R As Long  '表格中行总数

Dim L As Integer  '表格中列总数

Dim Arr '将表格写入数组

With Sheet2

    With .UsedRange

        R = .Rows.Count + .Row - 1

        L = .Columns.Count + .Column - 1

    End With

   

    Arr = .Range(.Cells(1, 1), .Cells(R, L)).Value

    

    .Protect Password:="freeholiday52uys" '保护工作表

End With

'-----------------------------------

 

Dim InBox As Integer

InBox = Application.InputBox(Prompt:="请输入“" & Arr(1, 1) & "”科满分:", Title:="请输入数字", Default:=100, Type:=1)

If InBox = 0 Then

    Application.ScreenUpdating = True

    Application.DisplayAlerts = True

    Exit Sub

End If

 

'登分表写入数组-----------

Dim Sht3R As Long  '表格中行总数

Dim Sht3L As Integer  '表格中列总数

Dim ArrSht3 '将表格写入数组

With Worksheets ("登分")

    With .UsedRange

        Sht3R = .Rows.Count + .Row - 1

        Sht3L = .Columns.Count + .Column - 1

    End With

   

    ArrSht3 = .Range(.Cells(1, 1), .Cells(Sht3R, Sht3L + 1)).Value

End With

'-----------------------------------

 

'数据维护--------------------------

Dim x As Long, j As Long, x1 As Long, i As Long

Dim Str As String, StrKZ As String, StrKH As String, StrCF As String

Dim flag As Boolean

Dim Arr1() As Long '记录所有重复行号数组

Dim Arr2() As String '记录所有重复行号数组,用于写入sheet6

Dim k As Long 'Arr1下标

Dim m As Long 'Arr2 下标

 

Str = ""

StrKZ = ""

StrKH = ""

k = 0

ReDim Arr1(1 To 1)

m = 1

ReDim Arr2(1 To R, 0)

Arr2(1, 0) = "重复学生信息维护结果:"

For x = 2 To UBound(Arr, 1)

    '查登分错误********

    If IsNumeric(Arr(x, 1)) = False Then '字符

        Str = Str & Cells(x, 1).Address(False, False) & ","

    ElseIf Len(Arr(x, 1)) = 0 Then '空值

        If Len(Arr(x, 3)) > 0 Then

            StrKZ = StrKZ & Cells(x, 1).Address(False, False) & ","

        End If

    Else '数字

        Select Case Val(Arr(x, 1))

            Case Is = -1, Is = -2, 0 To InBox

            Case Else

                Str = Str & Cells(x, 1).Address(False, False) & ","

        End Select

    End If

    '******************

   

    '学生信息************

    If Arr(x, 3) = "" Then

        If Len(Arr(x, 1)) > 0 Then

            StrKH = StrKH & x & "," '空行

        End If

    Else

        '重复行&&&&&&&&&&&

        flag = True

        For j = 1 To UBound(Arr1)

            If Arr1(j) = x Then '判断行x是否已查找过

                flag = False

                Exit For 'Arr1数组存在x行则退出循环

            End If

        Next j

       

        If flag Then 'x没查找过则

            StrCF = ""

            i = 0

            For x1 = x + 1 To R

                If Arr(x, 3) = Arr(x1, 3) And Arr(x, 1) <> Arr(x1, 1) Then

                    k = k + 1

                    ReDim Preserve Arr1(1 To k)

                    Arr1(k) = x1

                    StrCF = StrCF & x1 & ","

                    i = i + 1

                    Exit For '退出循环

                End If

            Next x1

           

            If StrCF <> "" Then '记录查找到的行

                m = m + 1

                

                If i > 100 Then

                    Arr2(m, 0) = "与第" & x & "行信息重复的行>100"

                Else

                    Arr2(m, 0) = "与第" & x & "行信息重复的行:" & StrCF

                End If

            End If

        End If

        '&&&&&&&&&&&&&&&&&

       

        '记录已登成绩的学生信息&&&&&&&&&&&&

        ArrSht3(Val(Arr(x, 3)), Sht3L + 1) = "TRUE"

        '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

    End If

    '***************************

Next x

'----------------------------------------

 

 

'记录未登成绩学生信息--------------------

Dim Arr3() As String

j = 0

ReDim Arr3(1 To Sht3L + 1, 1 To 1)

For x = 2 To UBound(ArrSht3, 1)

    If ArrSht3(x, Sht3L + 1) <> "TRUE" Then

        j = j + 1

        ReDim Preserve Arr3(1 To Sht3L + 1, 1 To j)

        Arr3(1, j) = x

        For x1 = 2 To Sht3L + 1

            Arr3(x1, j) = ArrSht3(x, x1 - 1)

        Next

    End If

Next x

'----------------------------------------

 

'未登成绩学生信息写入登分表------------

With Worksheets ("登分")

    .Cells(R + 1, 3).Resize(UBound(Arr3, 2), UBound(Arr3, 1)).Value = Application.Transpose(Arr3)

   

    .Range("A2:B" & R + j).Locked = False

End With

'-------------------------------

 

'错误数据写入sheet6--------------------------

Dim LastRow As Long

With Sheet6 '错误数据表

    .Visible = xlSheetVisible '显示工作表

    .UsedRange.Clear

   

    .Cells(1, 1).Value = "数据维护结果:" & Now()

    .Cells(2, 1).Value = "分值错误的单元格:" & Str

    .Cells(3, 1).Value = "分值为空的单元格:" & StrKZ

    .Cells(5, 1).Value = "学生信息为空的行:" & StrKH

    .Cells(7, 1).Resize(UBound(Arr2), 1).Value = Arr2 '学生信息重复行

    

    Application.Goto .Cells(1, 1), True '将窗口滚动至该单元格,即该单元格位于当前窗口的左上方

    .Activate

End With

MsgBox "数据维护完毕,请查看结果!漏登成绩的学生信息已写入《" & Sheet2.Name & "》的第" & R & "行至" & R + j & "行!", vbInformation, "提示信息…"

Application.ScreenUpdating = True

Application.DisplayAlerts = True

End Sub

参考文献:

罗刚君,EXCEL 2010 VBA编程与实践 北京:电子工业出版社,2010.12

转载于:https://www.cnblogs.com/zyjq/p/6658365.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简易成绩分析系统使用说明 四川省泸州市纳溪区大渡中学教务室制作使用 一、特色 1、限制条件少 只需把原始成绩录入或粘贴入总表即可,对总表要求极为宽松:不必整理试卷、非顺序登分;各列(包括科目)名称、位置任意;不受班级、每班人数、科目等数量限制,行列不受限制。简言之,只要您原始成绩表是什么样,把它复制过来就行,只需注意本总表第一行为表头且有班级一列和不合并单元格即可,其它不受任何限制。 2、具有容错能力 也许您对函数和公式比较熟悉,知道当公式引用的单元格被移动或删除时公式往往会出错。本作品避免了这个问题。本作品成绩册、统计表和成绩单采用公式生成,数据均来源于总表。可是对总表您尽可放心大胆编辑、修改,对数据进行各种处理,比如可以进行排序、筛选、删除等操作,哪怕移动和删除任何一行、一列,删除任何一个单元格也无妨。 3、具有恢复能力 本作品对成绩册和成绩单,虽然采用函数和公式实现,但您仍可自由编辑排版以便输出,如编辑、修改、删除公式,删除行列,哪怕删除或者清空整张表也可,如果你进行了以上或者其他误操作,您只需先退出该表再重新进入选择恢复即可自动恢复原来的页面包括公式。" 二、主要功能 1、查询:查询条件多样,可按姓名查询、按班级查询(分班);按某学科(含总分)某分数段查询;按班内名次(年级名次)段查询(如某班前XX名、年级前XX-XX名)等,各种查询条件还可自由组合。对查询结果,可按某关键字排序后显示,如按班级排名升序可组合出某班全部或班前XX名、年级前XX名排名等,按年级排名升序可组合出年级前XX名排名或全部排名等。 2、统计:根据班级和科目(含总体)按统计范围自动实时生成各项指标(参考人数、平均分、及格人数、及格率、优生人数、优生率、差生人数、差生率等)、各分数段人数统计、年级前XX名在各班分布等。 3、成绩册和成绩条:实时自动按班生成成绩册和成绩条。 三、操作指南 在总表中录入或粘贴入学生成绩等数据,然后经设置表简单设置后即可进行查询、统计等操作。其中,分班成绩册和成绩单、统计分别以VBA和公式两种方式制作,这两种方式各有特点,供你选择:公式方式的优点是当条件变化时显示结果随之实时变化,公式被破坏后还可重新恢复;VBA方式每次改变条件后必须点击相应按钮才能刷新结果,但对结果你可随意进行各种操作。如果你觉得窗体有可能遮住结果,窗体可移动,可关闭,也可随时按CTRL+Q(W)打开。另总表中还提供了按班级排序、填入总分、平均分、计算班级排名、年级排名、分数超限检查等多种自动化功能。 四、温馨提示 1、本成绩分析设计是本人想当然而成,加之时间仓促,错误和疏漏在所难免,如果你在使用中不符合您的需要,请及时告知,以便进一步改进! 2、本成绩分析工作表之间,相互引用,相互关联,不得随意更改删除,也不得对工作表重命名,否则将影响本成绩分析的正常使用。 3、操作前请做好数据备份,凡因使用本成绩分析而造成的数据损失,本人概不负责。 4、如果不能运行宏,请把“工具--宏--安全性”中,安全级别设为“中”。 制作:石明富 2009-6-29
1、Microsoft Excel平台 Microsoft Excel是最常用的电子表格软件。本系统以Microsoft Excel为操作平台,只要装了EXCEL就可以用,符合大多数人的使用习惯。用户既可以通过系统界面提高工作效率,也可以通过Microsoft Excel界面直接操作。 2、结构紧凑 只有一个原始数据表,三个功能表(查询、统计、成绩单),一个设置和本说明。界面直观、简洁,没有豪华的装饰,没有繁琐的步骤。 3、操作方便 使用本成绩分析时,您只需要输入或粘贴“基础数据”就可,其它分析数据由系统自动生成。操作简单,一看便会。 4、适应面广 成绩录入成绩分析一气呵成;不必整理试卷、非顺序登分;不受班级、每班人数、科目等数量限制。以人为本,对查询和统计结果,你可自由编辑排版以便输出,对查询条件方式、对统计项目、呈现方式等更可由您方便地重新设置,开放拓展性好。 ※※※※二、主要功能 1、查询:查询条件多样,可按姓名、按班级查询(分班);按某学科(含总分)某分数段查询;按班内名次(年级名次)段查询(如某班前XX名、年级前XX-XX名)等,各种查询条件还可自由组合。对查询结果,可按某关键字排序后显示。 2、统计:根据班级和科目(含总体)按统计范围自动实时生成各项指标(参考人数、平均分、及格人数、及格率、优生人数、优生率、差生人数、差生率等)、各分数段人数统计、年级前XX名在各班分布等。 3、成绩条:实时自动生成成绩条。
简易成绩分析系统使用说明 四川省泸州市纳溪区大渡中学教务室制作使用 ※※※※一、特色 EXCEL平台 本作品采用EXCEL 公式+VBA制作,既可根据你平时使用EXCEL的习惯和方式操作充分发挥EXCEL的功能,又能利用本作品提高效率。 结构紧凑,界面简洁 本作品工作表个数极少,分别是总表、表册、设置。你可以先在总表输入、在记录单逐条录入、导入或复制粘贴原始成绩,经设置表简单设置后即可在“表册”中根据你的需要自动生成各种表册,包括分班成绩册等各种表册、成绩单、各种统计表等。 ※※※※二、与众不同 本人曾上网搜索到EXCEL平台成绩管理系统不下20款,发现绝大多数都或多或少存在以下问题:总表(或成绩录入表)各项目名称、位置、格式均固定,如班级只能在某列输入且各班级名称必须采用统一格式(如“七(1)”、“七(2)”等)、各科目名称、顺序、录入范围固定等;如果采用公式制作的话,有些单元格还不能移除、拖动、删除等,否则公式会发生错误,当然一不小心公式被删除或破坏那就更糟了。但本作品为你解决了这几个问题,与众不同: 1、限制条件少,通用性更强 只需把原始成绩输入、导入、复制粘贴或在记录单逐条录入总表即可,对总表要求极为宽松:不必整理试卷、非顺序录入;各列(包括科目)名称、位置任意;不受班级、每班人数、科目等数量限制,行列不受限制。简言之,只要您原始成绩表是什么样,把它搞过来就行,只是需注意对本总表的惟一要求是:第一行为表格项目且有班级一列和不合并单元格即可,其它不受任何限制。 2、具有容错能力 也许您对函数和公式比较熟悉,知道当公式引用的单元格被移动或删除时公式往往会出错。本作品避免了这个问题。本作品“成绩册(公式)”、统计表和“成绩单(公式)”采用公式生成,数据均来源于总表。可是对总表您尽可放心大胆编辑、修改,对数据进行各种处理,比如可以进行排序、筛选、删除等操作,哪怕移动和删除任何一行、一列,删除任何一个单元格也无妨。 3、具有恢复能力 本作品对“成绩册(公式)”和“成绩单(公式)”,虽然采用函数和公式实现,但您仍可自由编辑排版以便输出,如编辑、修改、删除公式,删除行列,哪怕删除或者清空整张表也可,如果你进行了以上或者其他误操作,您只需重新点击相应按钮即可自动恢复。 ※※※※三、主要功能 1、查询:查询条件多样,可按姓名查询、按班级查询(分班);按某学科(含总分)某分数段查询;按班内名次(年级名次)段查询(如某班前XX名、年级前XX-XX名)等,各种查询条件还可自由组合。对查询结果,可按某关键字排序后显示,如按班级排名升序可组合出某班全部或班前XX名、年级前XX名排名等,按年级排名升序可组合出年级前XX名排名或全部排名等。 2、统计:根据班级和科目(含总体)按统计范围自动实时生成各项指标(参考人数、平均分、及格人数、及格率、优生人数、优生率、差生人数、差生率、优质分等)、各分数段人数统计、年级前XX名在各班分布等。 3、成绩册和成绩条:自动按班生成成绩册和成绩条。 ※※※※四、操作指南 在总表中输入、导入、复制粘贴或在记录单逐条录入原始成绩,经设置表简单设置后即可在“表册”中根据你的需要自动生成各种表册,包括分班成绩册等各种表册、成绩单、各种统计表等。 其中,分班成绩册和成绩单、统计分别以VBA和公式两种方式制作,这两种方式各有特点,供你选择:公式方式的优点是当条件变化(如所选班级、科目变化)时显示结果随之实时变化,除非公式被破坏或者刚从其它表册转入本功能你才需要重新点击按钮;VBA方式每次改变条件后必须点击相应按钮才能刷新结果,但对结果你可随意进行各种操作。如果你觉得窗体有可能遮住结果,窗体可移动,可关闭,也可随时按CTRL+Q(W)打开,以便在EXCEL中按你熟悉的方式操作。另总表中还提供了按班级排序、填入总分、平均分、计算班级排名、年级排名、分数超限检查等多种自动化功能。 ※※※※四、温馨提示 1、本成绩分析设计是本人想当然而成,加之时间仓促,错误和疏漏在所难免,如果你在使用中不符合您的需要,请及时告知,以便进一步改进! 2、本成绩分析工作表之间,相互引用,相互关联,不得随意更改删除,也不得对工作表重命名,否则将影响本成绩分析的正常使用。 3、操作前请做好数据备份,凡因使用本成绩分析而造成的数据损失,本人概不负责。 4、如果不能运行宏,请把“工具--宏--安全性”中,安全级别设为“中”。 制作:石明富 2009-6-29 简易成绩分析系统使用说明 总表操作提示 进入总表,你会发现一个窗口,如图所示,你可以利用这个窗口上的按钮来自动完成某些功能,当然你也可以移动或关闭该窗口,直接在总表中进行你能够进行的各种操作,如果你关闭了该窗口,按CTRL+W还可重新显示。 对总表要求极为宽松,你只需把原始成绩输入、导入、复制粘贴或在记录单逐条录入总表即可:不必整理试卷、非顺序录入;各列(包括科目)名称、位置任意;不受班级、每班人数、科目等数量限制,行列不受限制,你看图中工作表是不是显得多么乱啊!。而且在总表中可放心大胆编辑、修改,对数据进行各种处理,比如可以进行排序、筛选、删除等操作,哪怕移动和删除任何一行、一列,删除任何一个单元格也无妨。操作时可以利用窗口中的按钮进行自动处理,你也可以在工作表中按你平时使用方式直接操作,只是需注意对本总表的惟一要求是:第一行为表格项目且有班级一列和不合并单元格即可,其它不受任何限制。 窗口中各按钮作用和功能分别简述如下: “导入”按钮:如果你有现成原始成绩数据表,可点导入选择你的原始成绩工作簿和工作表(默认为1)追加或导入数据到总表,如果追加,你的原始工作表第二行为标题且须与总表首行标题完全一致方可。 “记录单”按钮:你可以在记录单中对某条成绩记录进行查询、修改、删除、添加等。 “生成总分和平均分”按钮:按你在设置表中“C”列的科目加计总分并根据你的选择是否计算平均分。 “生成班级名次”按钮:计算该生在班内的名次,该工作表无需按班级排序,如果该总表首行无“班内名次”一列(无论在哪列),则将在该表最后一列后面自动添加“班内名次”一列并填入相应数据。 “生成年级名次”按钮:计算全校名次,效果同“生成班级名次”。 “按班排序”按钮:按班级排序,不论“班级”在哪一列。 “超限检查”按钮:按设置表“C”列科目、“D”列分值检查总表成绩是否超过上限并提示。 “添表头”按钮:按需要添加表头。 “去表头”按钮:去表头,如果首行含有“班级”一格,则视为表格项目,不能再删除。如果你需要进行统计、查询、成绩册、成绩单等操作,必须去掉表头,让首行成为表格项目。 “关闭”按钮:隐藏本窗口,需要时可按CTRL+W重新显示。 设置操作提示 进入设置,首先会询问你是否采用公式,你可以选择“否”,稍后点按钮自动输入,进入设置后,界面如图所示。 各项设置的作用和目的如下: “A” 、“B”列分别为班级选项和字段,其数据分别来源于总表“班级”一列和首行,作用是其内容将呈现在表册窗口和统计表的选项框中以便选择输入,该设置可自动生成。 “C”列为科目选项,其数据应来源于该设置“B”列,作用一是其内容将呈现在表册窗口和统计表的选项框中以便选择输入科目,二是总表中自动生成总分时将以其内容加计而成。 “D”列为“C”列各科目相应的总分,其作用一是成绩统计(公式)时各优生数、及格数、后进生数将自动分别以其相应总分的80%、60%、40%作为判断分值计算,二是总表里“超限检查”时将按此分数检查相应科目成绩是否超过上限。 “E”列作用是其内容将呈现在表册窗口的查询条件选框中以便选择输入。 “G2”、“G3”、“G4”、“G5”为计算优质分(又叫考核分、积分等)时各率加权求和的权重。 “I1”为考试名称,总表、成绩册等表头将参考其内容。 表册操作提示 进入表册,界面如下,你在本窗口中的操作不同,该工作表呈现的内容也会即时变化,分班成绩册、成绩单、多条件查询等均在该表操作,所以该表暂以“表册”命名,如果你觉得不恰当,可联系作者修改。 本表窗口中,分班成绩册和成绩单、统计分别以VBA和公式两种方式制作,这两种方式各有特点,供你选择:公式方式的优点是当条件变化(如所选班级、科目变化)时显示结果随之实时变化,除非公式被破坏或者刚从其它表册转入本功能你才需要重新点击按钮;VBA方式每次改变条件后必须点击相应按钮才能刷新结果,但对结果你可随意进行各种操作。如果选框有误,请检查设置表中相应设置是否正确。如果你觉得窗体有可能遮住结果,窗体可移动,可关闭,也可随时按CTRL+Q(W)打开,以便在EXCEL中按你熟悉的方式操作。 多条件查询为按照你设置的条件并按你要求的顺序显示相应查询结果,可按姓名查询、按班级查询(分班);按某学科(含总分)某分数段查询;按班内名次(年级名次)段查询(如某班前XX名、年级前XX-XX名)等,各种查询条件还可自由组合。对查询结果,可按某关键字排序后显示,如按班级排名升序可组合出某班全部或班前XX名、年级前XX名排名等,按年级排名升序可组合出年级前XX名排名或全部排名等。如下面窗口内设置为班级为“4”班、数学b卷大于36分的班内名次前9名同学的成绩册并按总分降序显示。 统计操作提示 进入统计表,页面如下: 根据班级和科目(含总体)按统计范围自动实时生成各项指标(参考人数、平均分、及格人数、及格率、优生人数、优生率、差生人数、差生率等)、各分数段人数统计、年级前XX名在各班分布等。 统计范围为选择全部成绩进入统计、按每班前XX名还是按全年级前XX名进行统计。 表格内班级和科目两列可点下拉框选择输入并自由组合,如班级选择不同班级,科目为同一科,则是该科成绩在各班之间的对比;如科目为“平均分”(总表须有该列且有数据),则是各班总体成绩对比;如班级选择同一班,科目选择该班不同科目,则是该班各科成绩对比等。 各分数段人数统计一栏内各分数段可自行设置,可按各科目设置分数段(B列选择科目)、按总分设置分数段(B列选择“总分”),按年级名次设置名次段(B列选择年级名次,总表须有该列并有数据)可显示各名次段在各班的人数统计等。 该表可根据需要适当修改,如有多余行可删除,如行不够可往下复制,同样不必要的列也可删除,如各分数段统计列不够也可添加复制。
系统简介: 本产品是面向中小学校教导处推出的一套考试管理系统,它以考前“考务管理”和考后“成绩分析”为主线,将考试管理的整个流程贯穿起来,提高了考试管理的信息化水平,解决了考试管理中:自动编场、自动排号、成绩采集、统计分析、智能排版、快速报表等诸多难题,使考试管理变得轻松自如。 集成了“参数设置/考试表管理/数据处理/考务管理/成绩报表/统计分析/报表中心”等管理模块,系统功能完善、界面清晰、操作流畅,是目前同类产品中的作品。 实现了考生自动编场、考号公式赋值;能兼容Excel、FoxPro、Access数据记录的导入导出;提供了6套考务报表、15套成绩报表、20套分析报表。 功能简介: 1、参数丰富功能全面 主要包括考试参数、基本科目、考试类型、学校代码、年级信息、班级信息、任课教师等参数,这是保证考试管理与成绩分析正常运行的重要参数。 2、类似Excel的表格操作 表格编辑即时录入即时存储,右键菜单中提供了剪切、复制、粘贴、清除、撤销、恢复等命令,支持选中区域的复制填充、序列填充等命令。 3、兼容常见的数据库文件 考试表可导入导出Excel、FoxPro、Access数据库中的记录和数据,可以使用Excel作为成绩录入的终端系统,然后按考号导入到考试表中。 4、自动化考生编场和排号 考生可按班级循环或随机顺序编考场和排座号;支持用考号公式给学生编排考号;提供了考场信息表、考生信息表、桌贴、门贴、考试统计、考场统计共6套考务报表。 5、灵活多样的成绩报表 提供班级成绩单、学生成绩条、成绩变等次、年级/班级/总分前X名、上线名单、各段名单、各科蛮高分、不及格名单等共15套成绩报表。 6、丰富实用的分析报表 可分别按年级、班级、教师、科目进行统计分析,项目包括平均分、及格率、率、低分率、特优率、进线率、均差等各种分析报表共20多套,提供了4种统计方案。 7、完善的报表编辑中心 所有报表数据都要经过报表编辑中心,每种报表系统会根据其特点智能排版,也可再次编辑排版,报表数据还能导出Excel、Word、Html等文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值