- ©«¤l
- 4901
- ¥DÃD
- 44
- ºëµØ
- 24
- ¿n¤À
- 4916
- ÂI¦W
- 107
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Office 20xx
- ¾\ŪÅv
- 150
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥x¥_
- µù¥U®É¶¡
- 2010-4-30
- ³Ì«áµn¿ý
- 2025-5-4
               
|
- Sub nn()
- Set d = CreateObject("Scripting.dictionary")
- Set d1 = CreateObject("Scripting.dictionary")
- Dim Ar()
- Range("A4").CurrentRegion.Sort key1:=[A5], Header:=xlYes
- A = [A4].CurrentRegion.Offset(1)
- For i = 1 To UBound(A)
- If IsEmpty(d(A(i, 1) & A(i, 5))) Then
- d(A(i, 1) & A(i, 5)) = Array(Application.Index(A, i))
- d1(A(i, 1) & A(i, 5)) = d1(A(i, 1) & A(i, 5)) + 1
- Else
- Ar = d(A(i, 1) & A(i, 5))
- ReDim Preserve Ar(d1(A(i, 1) & A(i, 5)))
- Ar(d1(A(i, 1) & A(i, 5))) = Array(Application.Index(A, i))
- d(A(i, 1) & A(i, 5)) = Ar
- d1(A(i, 1) & A(i, 5)) = d1(A(i, 1) & A(i, 5)) + 1
- End If
- Next
- r = 5
- [A4].CurrentRegion.Offset(1) = ""
- For Each ky In d.keys
- If ky <> "" Then
- Cells(r, 1).Resize(UBound(d(ky)) + 1, 7) = Application.Transpose(Application.Transpose(d(ky)))
- Cells(r + UBound(d(ky)) + 1, 5) = "Sub Total:"
- Cells(r + UBound(d(ky)) + 1, 6) = Application.Sum(Application.Index(d(ky), , 6))
- r = r + UBound(d(ky)) + 3
- End If
- Next
- End Su
½Æ»s¥N½X |
|