Sub Macro1()
On Error Resume Next
Dim arr, brr(1 To 60000, 1 To 16), d, i%, j&, s&
Set d = CreateObject("scripting.dictionary")
For i = 1 To Sheets.Count - 1
arr = Sheets(i).Range("a1").CurrentRegion
For j = 2 To UBound(arr)
If Not d.exists(arr(j, 1)) Then
s = s + 1
d(arr(j, 1)) = s
brr(s, 1) = arr(j, 1)
brr(s, 2) = arr(j, 2)
brr(s, 3) = arr(j, 3)
brr(s, i + 3) = arr(j, 4)
Else
brr(d(arr(j, 1)), i + 3) = arr(j, 4)
End If
Next
Next
Sheets("汇总表").Activate
Range("a2:p60000").ClearContents
Range("a2").Resize(s, 16) = brr
[p2] = "=SUM(D2:O2)"
With [p2].Resize(s)
.FillDown
.Value = .Value
End With
End Sub