|
- Sub Macro1()
- Dim arr, brr, crr, d, i&, s&, h%, l%
- Set d = CreateObject("scripting.dictionary")
- arr = Sheet1.Range("aa5").CurrentRegion
- Const hs As Integer = 38 '打印行数
- ReDim brr(1 To UBound(arr), 1 To 3)
- For i = 2 To UBound(arr)
- If Not d.exists(arr(i, 1)) Then
- s = s + 1
- d(arr(i, 1)) = s
- brr(s, 1) = arr(i, 1)
- brr(s, 2) = arr(i, 2)
- brr(s, 3) = arr(i, 3)
- Else
- brr(d(arr(i, 1)), 2) = brr(d(arr(i, 1)), 2) + arr(i, 2)
- brr(d(arr(i, 1)), 3) = brr(d(arr(i, 1)), 3) + arr(i, 3)
- End If
- Next
- n = (s \ hs + 1) * 3
- ReDim crr(1 To hs, 1 To n)
- For i = 1 To s
- h = (i - 1) Mod hs + 1
- l = ((i - 1) \ hs) * 3 + 1
- crr(h, l) = brr(i, 1)
- crr(h, l + 1) = brr(i, 2)
- crr(h, l + 2) = brr(i, 3)
- Next
- Range("b8").Resize(hs, n) = crr
- End Sub
复制代码 |
|