- ©«¤l
- 5923
- ¥DÃD
- 13
- ºëµØ
- 1
- ¿n¤À
- 5986
- ÂI¦W
- 0
- §@·~¨t²Î
- win10
- ³nÅ骩¥»
- Office 2010
- ¾\ŪÅv
- 150
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW°ò¶©
- µù¥U®É¶¡
- 2010-5-1
- ³Ì«áµn¿ý
- 2022-1-23
        
|
¥»©«³Ì«á¥Ñ GBKEE ©ó 2010-6-8 17:27 ½s¿è
¦^´_ 4# yuch8663 - Sub Ex()
- Dim D As Object, D1 As Object, Sh As Worksheet, Ar(), A As Range, B As Range
- Set D = CreateObject("Scripting.Dictionary")
- Set D1 = CreateObject("Scripting.Dictionary")
- ReDim Preserve Ar(2)
- Ar(0) = Sheets("Sheet1").[A1]
- Ar(1) = Sheets("Sheet1").[B1]
- For Each Sh In Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4"))
- With Sh
- For Each A In .Range(.[C1], .[IV1].End(xlToLeft))
- If Not IsNumeric(Application.Match(A, Ar, 0)) Then
- Ar(UBound(Ar)) = A.Value
- ReDim Preserve Ar(UBound(Ar) + 1)
- End If
- For Each B In .Range(A.Offset(1, 0), .Cells(65536, A.Column).End(xlUp))
- D1(.Cells(B.Row, 1) & .Cells(B.Row, 2)) = Array(.Cells(B.Row, 1), .Cells(B.Row, 2))
- D(.Cells(B.Row, 1) & .Cells(B.Row, 2) & A) = D(.Cells(B.Row, 1) & .Cells(B.Row, 2) & A) + B.Value
- Next
- Next
- End With
- Next
- With Sheet5
- .Cells = ""
- .[A1].Resize(, UBound(Ar)) = Ar
- .[A2].Resize(D1.Count, 2) = Application.Transpose(Application.Transpose(D1.ITEMS))
- For Each C In .Range(.[C1], .[IV1].End(xlToLeft))
- For Each A In C.Offset(1, 0).Resize(D1.Count, 1)
- A = D(.Cells(A.Row, 1) & .Cells(A.Row, 2) & C)
- Next
- Next
- End With
- End Sub
½Æ»s¥N½X |
|