'估计是输出全部的吧,,,
Option Explicit
Sub test()
Dim arr, i, dic, n
Set dic = CreateObject("scripting.dictionary")
arr = Sheets("sheet1").[a1].CurrentRegion
ReDim brr(100, UBound(arr, 1)), m(1 To UBound(arr, 1)) As Long
For i = 3 To UBound(arr, 1)
If Not dic.exists(arr(i, 1)) Then
n = n + 1
dic(arr(i, 1)) = n
brr(0, n) = arr(i, 1)
End If
m(dic(arr(i, 1))) = m(dic(arr(i, 1))) + 1
brr(m(dic(arr(i, 1))), dic(arr(i, 1))) = arr(i, 2)
brr(dic(arr(i, 1)), 0) = "成绩" & dic(arr(i, 1))
Next
brr(0, 0) = "姓名"
Sheets("sheet2").[b3].Resize(UBound(brr, 1) + 1, n + 2) = brr
End Sub |