Sub test()
Dim arr, brr(1 To 10000, 1 To 14)
Dim d As Object
Set d = CreateObject("scripting.dictionary")
arr = Sheet1.[a1].CurrentRegion.Value
a = Array("考生号", "姓名", "班级", "语文", "数学", "外语", "物理", "化学", "生物", "历史", "政治", "地理", "信息技术", "思想政治")
For j = 0 To UBound(a)
brr(1, j + 1) = a(j)
d(a(j)) = j + 1
Next
r = 1
For i = 2 To UBound(arr)
If d(arr(i, 1) & "") = "" Then
r = r + 1
d(arr(i, 1) & "") = r
For j = 1 To 3
brr(r, j) = arr(i, j)
Next
Else
lr = d(arr(i, 1) & "")
lc = d(arr(i, 4))
brr(lr, lc) = arr(i, 4)
End If
Next
With Sheet2
.Cells.ClearContents
.[a1].Resize(r, UBound(brr, 2)) = brr
End With
End Sub
|