|
发表于 2012-1-15 08:51
|
显示全部楼层
本楼为最佳答案
- Sub aa()
- Dim arr
- Dim arr2
- Dim d As New Dictionary
- Dim i As Long
- arr = Range("a2:b" & Range("b65536").End(xlUp).Row)
- For i = 1 To UBound(arr, 1)
- If Not d.Exists(arr(i, 1)) = True Then
- Set d(arr(i, 1)) = New Dictionary
- d(arr(i, 1))(arr(i, 2)) = ""
- Else
- d(arr(i, 1))(arr(i, 2)) = ""
- End If
- Next i
- ReDim arr2(0 To d.Count - 1, 1 To 2)
- For i = 0 To d.Count - 1
- arr2(i, 1) = d.Keys(i)
- 'arr2(i, 2) = Join(d.Items(i).Keys, ",")
- arr2(i, 2) = d.Items(i).Keys
- Next i
- 'Range("k2").Resize(d.Count, 2) = arr2
- Range("D19").Resize(UBound(arr2) + 1, 1) = arr2
- For i = 1 To UBound(arr2) + 1
- Cells(18 + i, 5).Resize(1, UBound(arr2(i - 1, 2)) + 1) = arr2(i - 1, 2)
- Next i
- End Sub
复制代码 |
|