|
- Sub 汇总()
- Application.ScreenUpdating = False
- r = [a65536].End(3).Row
- Range("u6:y" & r).ClearContents
- arr = Range("a6:y" & r)
- For i = 1 To UBound(arr)
- For j = 6 To 20
- If Val(arr(i, j)) > 0 Then
- arr(i, 21) = arr(i, 21) + arr(i, j) '总分
- arr(i, 23) = arr(i, 23) + 1 '考试科数
- If arr(i, j) >= 60 Then arr(i, 22) = arr(i, 22) + 1 '及格科数
- End If
- Next
- Next
- Range("a6:y" & [a65536].End(3).Row) = arr '运行结果:总分,考试科数,及格科数
-
- Range("a6:y" & [a65536].End(3).Row).Sort key1:=[a1], key2:=[U1], order2:=xlDescending '按级+总分排序,计算级名
- arr = Range("a6:y" & r)
- arr(1, 24) = 1: n = 1
- For i = 2 To UBound(arr)
- If arr(i, 1) = arr(i - 1, 1) Then
- If Len(arr(i, 4)) > 0 Then '有姓名
- n = n + 1
- arr(i, 24) = n
- If arr(i, 21) = arr(i - 1, 21) Then arr(i, 24) = arr(i - 1, 24)
- End If
- Else
- n = 1
- arr(i, 24) = n
- End If
- Next
- Range("a6:y" & r) = arr '运行结果:年级排名
-
- Range("a6:y" & [a65536].End(3).Row).Sort key1:=[a1], key2:=[b1], key3:=[U1], order3:=xlDescending '按级+班+总分排序,计算班名
- arr = Range("a6:y" & r)
- arr(1, 25) = 1: n = 1
- For i = 2 To UBound(arr)
- If arr(i, 2) = arr(i - 1, 2) Then
- If Len(arr(i, 4)) > 0 Then '有姓名
- n = n + 1
- arr(i, 25) = n
- If arr(i, 21) = arr(i - 1, 21) Then arr(i, 25) = arr(i - 1, 25)
- End If
- Else
- n = 1
- arr(i, 25) = n
- End If
- Next
- Range("a6:y" & r) = arr '运行结果:班级排名
- Range("a6:y" & [a65536].End(3).Row).Sort key1:=[c1] '按序号排序,恢复原序
- Application.ScreenUpdating = True
- End Sub
复制代码 |
|