- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
- 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
複製代碼 |
|