|
发表于 2016-6-8 12:08
|
显示全部楼层
本楼为最佳答案
最终数据会产生在I列及之后,代码如下:- Sub 转化()
- Dim dc As Object, arr, brr, n&, i&, j&, crr, x&, drr(), xrr
- Set dc = CreateObject("Scripting.Dictionary")
- n = Sheet1.Cells(Sheet1.Rows.Count, 3).End(xlUp).Row
- arr = Sheet1.Range("C1:C" & n)
- brr = Sheet1.Range("e1:e" & n)
- For i = 1 To n - 1
- If Not dc.exists(arr(i, 1)) Then
- dc.Add arr(i, 1), ""
- y = y + 1
- ReDim Preserve drr(1 To y)
- Set drr(y) = CreateObject("Scripting.Dictionary")
-
- End If
- If Not drr(y).exists(brr(i, 1)) Then
- drr(y).Add brr(i, 1), ""
- End If
- Next
- crr = dc.Keys
- For i = 1 To dc.Count
- xrr = drr(i).Keys
- Sheet1.Cells(i, 9) = crr(i - 1)
- Sheet1.Cells(i, 10).Resize(1, drr(i).Count) = xrr
- Next
- End Sub
复制代码 |
|