|
用数组字典速度会快10倍。
- Sub grf1()
- tt = Timer
- arr = Sheets("Source").[a1].CurrentRegion
- ReDim brr(1 To UBound(arr), 1 To 3)
- Set d = CreateObject("scripting.dictionary")
- Set d1 = CreateObject("scripting.dictionary")
- For i = 2 To UBound(arr)
- rq = arr(i, 2): x = arr(i, 1) & rq
- If Not d.exists(rq) Then
- n = n + 1
- brr(n, 1) = rq
- d(rq) = n
- End If
- p = d(rq)
- If Not d1.exists(x) Then
- brr(p, 2) = brr(p, 2) + 1
- d1(x) = ""
- End If
- brr(p, 3) = brr(p, 3) + arr(i, 3)
- Next
- [a2].Resize(n, 3) = brr
- MsgBox Timer - tt
- End Sub
复制代码 |
|