|
字典嵌套,练下手。。。。。。。- Sub shishi()
- Dim arr, brr(), d, rq
- Set d = CreateObject("Scripting.Dictionary")
- Set rq = CreateObject("Scripting.Dictionary")
- r = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
- c = Sheets(1).Cells(6, Columns.Count).End(xlToLeft).Column
- arr = Sheets(1).Range("a6").Resize(r, c)
- For i = 2 To UBound(arr)
- If arr(i, 1) <> "" Then
- arr(i, 1) = Format(arr(i, 1), "yyyy-mm")
- rq(arr(i, 1)) = ""
- Key = arr(i, 2) & "," & arr(i, 3) & "," & arr(i, 4)
- End If
- If Not d.exists(Key) Then
- Set d(Key) = CreateObject("Scripting.Dictionary")
- d(Key)(arr(i, 1)) = arr(i, 5)
- Else
- d(Key)(arr(i, 1)) = d(Key)(arr(i, 1)) + arr(i, 5)
- End If
- Next
- ReDim brr(1 To d.Count, 1 To rq.Count + 3)
- Sheets(2).UsedRange.ClearContents
- Sheets(2).[d4].Resize(1, rq.Count) = rq.keys
- For Each Key In d.keys
- n = n + 1
- For j = 4 To UBound(brr, 2)
- tt = Split(Key, ",")
- brr(n, 1) = tt(0): brr(n, 2) = tt(1): brr(n, 3) = tt(2)
- k = Format(Sheets(2).Cells(4, j), "yyyy-mm"): brr(n, j) = d(Key)(k)
- Next
- Next
- Sheets(2).[a5].Resize(d.Count, UBound(brr, 2)) = brr
- End Sub
复制代码 |
评分
-
1
查看全部评分
-
|