| ©«¤l5923 ¥DÃD13 ºëµØ1 ¿n¤À5986 ÂI¦W0  §@·~¨t²Îwin10 ³nÅ骩¥»Office 2010 ¾\ŪÅv150 ©Ê§O¨k ¨Ó¦Û¥xÆW°ò¶© µù¥U®É¶¡2010-5-1 ³Ì«áµn¿ý2022-1-23 
         
 | 
                
| ¥»©«³Ì«á¥Ñ GBKEE ©ó 2010-6-8 17:27 ½s¿è 
 ¦^´_ 4# yuch8663
 ½Æ»s¥N½XSub 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
 | 
 |