- ©«¤l
- 4901
- ¥DÃD
- 44
- ºëµØ
- 24
- ¿n¤À
- 4916
- ÂI¦W
- 102
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Office 20xx
- ¾\ŪÅv
- 150
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥x¥_
- µù¥U®É¶¡
- 2010-4-30
- ³Ì«áµn¿ý
- 2025-4-28
               
|
¦^´_ 1# yuch8663 - Sub Ex()
- Dim Sh As Worksheet, Ar(), A As Range, B As Range, C As Range, s&, i%
- Set d = CreateObject("Scripting.Dictionary")
- Set d1 = CreateObject("Scripting.Dictionary")
- For Each Sh In Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4"))
- With Sh
- Set C = IIf(i = 0 Or i = 2, .[A1], .[C1])
- For Each A In .Range(C, .[IV1].End(xlToLeft))
- ReDim Preserve Ar(s)
- Ar(s) = A.Value
- s = s + 1
- For Each B In .Range(A.Offset(1, 0), .Cells(65536, A.Column).End(xlUp))
- If i = 0 Then
- 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) = B.Value
- ElseIf d1.exists(.Cells(B.Row, 1) & .Cells(B.Row, 2)) = True Then
- d(.Cells(B.Row, 1) & .Cells(B.Row, 2) & A) = B.Value
- End If
- Next
- Next
- i = i + 1
- End With
- Next
- With Sheet5
- .Cells = ""
- .[A1].Resize(, s) = Ar
- r = d1.Count
- .[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 |
|