|
发表于 2016-12-14 10:12
|
显示全部楼层
本楼为最佳答案
结果显示在22行开始。
- Sub tt()
- Set d = CreateObject("scripting.dictionary")
- arr = Sheets(1).Range("a1").CurrentRegion
- ReDim brr(1 To UBound(arr), 1 To 1000)
- ReDim nn(1 To UBound(arr))
- For k = 1 To UBound(arr, 1)
- x = arr(k, 1) & arr(k, 2) & arr(k, 3)
- If Not d.exists(x) Then
- n = n + 1: d(x) = n
- For j = 1 To UBound(arr, 2)
- brr(n, j) = arr(k, j)
- Next
- nn(n) = UBound(arr, 2)
- Else
- p = d(x)
- For j = 1 To 5
- brr(p, nn(p) + j) = arr(k, j + 3)
- brr(1, nn(p) + j) = arr(1, j + 3)
- Next
- nn(p) = nn(p) + 5
- End If
- Next
- If n > 0 Then [a22].Resize(n, Application.Max(nn)) = brr
- End Sub
复制代码 |
|