- Sub tt()
- Range("a7:d65536").ClearContents
- Application.ScreenUpdating = False
- Dim d As Object, arr, i&, s&, w$
- Set d = CreateObject("scripting.dictionary")
- arr = Sheet1.Range("a6").CurrentRegion
- ReDim brr(1 To UBound(arr), 1 To 4)
- For i = 1 To UBound(arr)
- w = arr(i, 1) & "," & arr(i, 2)
- If Not d.exists(w) Then
- s = s + 1
- d(w) = s
- brr(s, 1) = arr(i, 1)
- brr(s, 2) = arr(i, 2)
- brr(s, 4) = arr(i, 4)
- End If
- p = d(w)
- brr(p, 3) = brr(p, 3) + arr(i, 3)
- If InStr(brr(p, 4), arr(i, 4)) = 0 Then brr(p, 4) = brr(p, 4) & "," & arr(i, 4)
- Next
- [a7].Resize(s, 4) = brr
- Application.ScreenUpdating = True
- End Sub
复制代码 |