Option Explicit
Sub 汇总()
Dim ar, d, i&, s$, br, t
ar = Sheet1.Range("a1").CurrentRegion
If Not IsArray(ar) Then Exit Sub
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(ar)
s = ar(i, 1) & "☆" & ar(i, 2) & "☆" & ar(i, 3)
If s <> "" Then
If Not d.exists(s) Then
d(s) = Array(ar(i, 1), ar(i, 2), ar(i, 3), ar(i, 4), ar(i, 5), ar(i, 6), ar(i, 7))
Else
br = d(s)
br(3) = br(3) + ar(i, 4)
br(4) = br(4) + ar(i, 5)
br(5) = br(5) + ar(i, 6)
br(6) = br(6) + ar(i, 7)
d(s) = br
End If
End If
Next
If d.Count > 0 Then
t = d.items
Sheet1.Range("J2:P" & d.Count + 1) = ""
Sheet1.Range("J2:P" & d.Count + 1) = Application.Rept(t, 1)
Set d = Nothing
MsgBox "处理成功", , "提示"
Else
MsgBox "未处理任何数据,数据源中不存在任何数据", 64, "请核实您的数据"
End If
End Sub |