|
使用VBA字典:- Option Explicit
- Private Sub CommandButton1_Click()
- Dim d As Object
- Dim arr, brr
- Dim i%, str$, j%, max%
- Set d = CreateObject("scripting.dictionary")
- arr = Range("a1").CurrentRegion.Value
- For i = 1 To UBound(arr)
- d(CStr(arr(i, 1))) = 0
- Next
- For i = UBound(arr) To 1 Step -1
- max = UBound(Split(arr(i, 1), "."))
- If max > 0 Then
- str = ""
- For j = 0 To max - 1
- str = str & Split(arr(i, 1), ".")(j) & "."
- Next
- str = Left(str, Len(str) - 1)
- d(str) = d(str) + arr(i, 3) + d(CStr(arr(i, 1)))
- If d(CStr(arr(i, 1))) = 0 Then d(CStr(arr(i, 1))) = arr(i, 3)
- End If
- Next
- brr = d.items
- [c1].Resize(d.Count) = WorksheetFunction.Transpose(brr)
- End Sub
复制代码 |
|