|
发表于 2012-4-12 10:39
|
显示全部楼层
本楼为最佳答案
- Sub 测试()
- Set d = CreateObject("scripting.dictionary")
- With Sheet1
- r = .Range("a65536").End(xlUp).Row
- arr = .Range("a3:af" & r)
- brr = .Range("c35:af36")
- ReDim crr(1 To UBound(arr) * UBound(arr, 2), 1 To 6)
- For a = 1 To UBound(arr)
- For b = 4 To UBound(arr, 2) Step 8
- s = arr(a, b - 1)
- If Not d.exists(s) Then
- n = n + 1
- d(s) = n
- For c = 1 To 6
- crr(n, c) = arr(a, c + b - 2)
- Next
- Else
- For c = 2 To 6
- crr(d(s), c) = crr(d(s), c) + arr(a, c + b - 2)
- Next
-
- End If
- Next
- Next
- For a = 1 To 2
- For b = 1 To 30 Step 8
- s = brr(a, b)
- If Len(s) Then
- For c = 1 To 5
- brr(a, b + c) = crr(d(s), c + 1)
- Next
- End If
- Next
- Next
- .Range("c35:af36") = brr
- End With
- End Sub
复制代码 |
|