图一


图二


图三


图四


图五


1、在数据表内画一按钮(图一例 ),打开VBA在建一模块或在sheet1里写上如下代码:
Sub 统计()
成绩统计.Show
End Sub
2、在数据表中把刚画的按键引用这个“统计"宏(图2例)
3、在VBA中建立一个窗口按画出如(图3例)
4、双击成绩统计按钮进入VBA代码窗口复制一下代码,删除头尾一行重复代码。
5、完成后点击统计成绩按钮,弹出窗口,点击成绩统计如(图5例)
Private Sub CommandButton1_Click()
Dim n&, bjg%, yx%, a%, b%, c%, d%, e%, f%, g%, h%, i1%, j%
n = Application.CountA([a:a])
For i = 2 To n
If Cells(i, 3).Value <= 10 Then '统计0-10人之间人数
a = a + 1
ElseIf Cells(i, 3).Value > 10 And Cells(i, 3).Value <= 20 Then '统计11-20人之间人数
b = b + 1
ElseIf Cells(i, 3).Value > 20 And Cells(i, 3).Value <= 30 Then '统计21-30人之间人数
c = c + 1
ElseIf Cells(i, 3).Value > 30 And Cells(i, 3).Value <= 40 Then '统计31-40人之间人数
d = d + 1
ElseIf Cells(i, 3).Value > 40 And Cells(i, 3).Value <= 50 Then '统计41-50人之间人数
e = e + 1
ElseIf Cells(i, 3).Value > 50 And Cells(i, 3).Value <= 60 Then '统计51-60人之间人数
f = f + 1
ElseIf Cells(i, 3).Value > 60 And Cells(i, 3).Value <= 70 Then '统计61-70人之间人数
g = g + 1
ElseIf Cells(i, 3).Value > 70 And Cells(i, 3).Value <= 80 Then '统计71-80人之间人数
h = h + 1
ElseIf Cells(i, 3).Value > 80 And Cells(i, 3).Value <= 90 Then '统计81-90人之间人数
i1 = i1 + 1
ElseIf Cells(i, 3).Value >= 90 Then
j = j + 1
End If
'=====================================================================================================
If Cells(i, 3).Value < 60 Then '统计小于60分不及格的人数
bjg = bjg + 1
ElseIf Cells(i, 3).Value >= 60 And Cells(i, 3).Value < 90 Then
yx = yx + 1 '统计60分以上及格的人数
End If
'=====================================================================================================
Next '循环结束
'=======================================================================================================
Label5.Caption = "0-10分:" & a & "人;" & " " & "11-20分:" & b & "人;" & " " & "21-30分:" & c & "人;" & Chr(10) _
& "31-40分:" & d & "人;" & " " & "41-50分:" & e & "人;" & " " & "51-60分:" & f & "人;" & Chr(10) _
& "61-70分:" & g & "人;" & " " & "71-80分:" & h & "人;" & " " & "81-90分:" & i1 & "人;" & Chr(10) _
& "90-100分:" & j & "人;" '以上是显示出每个分段人数有多少人
'=========================================================================================================
i = i - 2
TextBox1.Text = bjg '显示不及格人数
TextBox2.Value = Round(Val(bjg / i * 100), 2) & "%" '统计不及格率
TextBox3.Text = j '显示90分以上人数
TextBox4.Text = Round(Val(j / i * 100), 2) & "%" '统计90分以上的优秀率
TextBox6.Text = yx '统计及格率60-90之间的
TextBox5.Text = Round(Val(yx / i * 100), 2) & "%" '统计及格率60-90及格率
End Sub