|
Sub 分类汇总2()
Dim ar As Variant
Dim d As Object
Set d = CreateObject("scripting.dictionary")
With ActiveSheet
r = .Cells(Rows.Count, 11).End(xlUp).Row
If r < 4 Then MsgBox "数据源区域为空!": End
ar = .Range("k3:l" & r)
For i = 2 To UBound(ar)
If ar(i, 1) <> "" Then
If Not d.exists(ar(i, 1)) Then
d(ar(i, 1)) = .Cells(i + 2, 12)
Else
d(ar(i, 1)) = d(ar(i, 1)) & "|" & .Cells(i + 2, 12)
End If
End If
Next i
rs = .Cells(Rows.Count, 16).End(xlUp).Row
If rs >= 4 Then .Range("q4:q" & rs) = Empty
ar = .Range("p3:q" & rs + 3)
For i = 2 To UBound(ar)
If ar(i, 1) <> "" Then
If d.exists(ar(i, 1)) Then
rr = Split(d(ar(i, 1)), "|")
m = i - 1
For s = 0 To UBound(rr)
m = m + 1
ar(m, 2) = rr(s)
Next s
End If
End If
Next i
.Range("p3:q" & rs + 3) = ar
End With
MsgBox "ok!"
End Sub |
|