- Sub dic()
- Dim arr, brr, i&, d As Object, r&
- Set d = CreateObject("scripting.dictionary")
- arr = [a1].CurrentRegion
- ReDim brr(1 To UBound(arr), 1 To 2)
- For i = 2 To UBound(arr)
- If Not d.exists(arr(i, 1)) Then
- r = r + 1
- d(arr(i, 1)) = r
- brr(r, 1) = arr(i, 1)
- brr(r, 2) = arr(i, 2)
- Else
- brr(d(arr(i, 1)), 2) = brr(d(arr(i, 1)), 2) & "," & arr(i, 2)
- End If
- Next i
- [d2].Resize(r, 2) = brr
- End Sub
- Private Sub ary()
- Dim arr, brr, i&, k&, r&
- arr = [a1].CurrentRegion
- ReDim brr(1 To UBound(arr), 1 To 2)
- brr(1, 1) = arr(2, 1): brr(1, 2) = arr(2, 2)
- r = 1
- For i = 3 To UBound(arr)
- For k = 1 To r
- If arr(i, 1) = brr(k, 1) Then
- brr(k, 2) = brr(k, 2) & "," & arr(i, 2)
- Exit For
- End If
- Next k
- If k > r Then
- r = r + 1
- brr(r, 1) = arr(i, 1)
- brr(r, 2) = arr(i, 2)
- End If
- Next i
- [d2].Resize(r, 2) = brr
- End Sub
复制代码 |