- Sub Macro1()
- Dim arr, brr, d, i&, j%, n&, sz%
- Set d = CreateObject("scripting.dictionary")
- arr = Range("a1:a" & Range("a65536").End(xlUp).Row)
- For i = 1 To UBound(arr) Step 3
- If Not d.exists(arr(i, 1)) Then
- d(arr(i, 1)) = arr(i + 1, 1)
- Else
- d(arr(i, 1)) = d(arr(i, 1)) & "," & arr(i + 1, 1)
- End If
- Next
- ReDim brr(1 To d.Count * 3, 1 To 200)
- For i = 0 To d.Count - 1
- sz = Application.Small(d.keys, i + 1)
- x = Split(d(sz), ",")
- If n < UBound(x) + 1 Then n = UBound(x) + 1
- For j = 0 To UBound(x)
- brr(i * 3 + 1, j + 1) = sz
- brr(i * 3 + 2, j + 1) = x(j)
- Next
- Next
- Range("u1").Resize(UBound(brr), n) = brr
- End Sub
复制代码 |