|
A21:0Mouse,有劳学委!(*^__^*) 嘻嘻……
题1:
- Sub One()
- Dim arr, d1 As Object, brr, Ar, i%, j%, d2 As Object
- Set d1 = CreateObject("scripting.dictionary")
- Set d2 = CreateObject("scripting.dictionary")
- [F2:F9].ClearContents
- Range("D10:F" & Rows.Count - 9).ClearContents
- arr = [D1:F9]
- brr = [A1].CurrentRegion
- ReDim Ar(1 To UBound(brr), 1 To 3)
- For i = 2 To UBound(arr)
- d1.Add arr(i, 2), arr(i, 1)
- Next
- For j = 2 To UBound(brr)
- If Not d1.exists(brr(j, 1)) Then
- If Not d2.exists(brr(j, 1)) Then
- d2.Add brr(j, 1), d2.Count + 1
- Ar(d2.Count, 1) = 8 + d2(brr(j, 1))
- Ar(d2.Count, 2) = brr(j, 1)
- Ar(d2.Count, 3) = brr(j, 2)
- Else
- Ar(d2(brr(j, 1)), 3) = Ar(d2(brr(j, 1)), 3) + brr(j, 2)
- End If
- Else
- arr(d1(brr(j, 1)) + 1, 3) = arr(d1(brr(j, 1)) + 1, 3) + brr(j, 2)
- End If
- Next
- Range("D1").Resize(9, 3) = arr
- If d2.Count > 0 Then
- Range("D10").Resize(d2.Count, 3) = Ar
- [D10].Resize(d2.Count, 2).Font.Bold = True
- End If
- Set d1 = Nothing
- Set d2 = Nothing
- Erase Ar: Erase brr: Erase arr
- Range("D1").Activate
- End Sub
复制代码 题2:
- Sub Two()
- Dim arr, i%, imin%, imax%, d As Object
- Set d = CreateObject("scripting.dictionary")
- imin = [C2]: imax = [d2]
- arr = Range("A1:B" & Cells(Rows.Count, 1).End(xlUp).Row)
- For i = 2 To UBound(arr)
- If arr(i, 1) = "" Then arr(i, 1) = arr(i - 1, 1)
- If arr(i, 2) >= imin And arr(i, 2) <= imax Then
- d(arr(i, 1)) = d(arr(i, 1)) + arr(i, 2)
- End If
- Next
- Range("E2:F" & Rows.Count - 1).ClearContents
- [E2].Resize(d.Count, 1) = Application.Transpose(d.keys)
- [F2].Resize(d.Count, 1) = Application.Transpose(d.items)
- Set d = Nothing
- Erase arr
- End Sub
复制代码 附件:
第3讲-A21-0Mouse.rar
(15.16 KB, 下载次数: 5)
|
评分
-
查看全部评分
|