- ©«¤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
        
|
¦^´_ 1# adam2010
¸Õ¸Õ¬Ý- Option Explicit
- Sub Ex()
- Dim D As Object, Sh As Worksheet, Rng As Range, i As Integer, AR As Variant
- Set D = CreateObject("SCRIPTING.DICTIONARY") '¦r¨åª«¥ó
- For Each Sh In Sheets '¤u§@ªíª«¥ó¶°¦X
- If Not Sh.Name Like "·JÁ`*" Then '¤ñ¹ï¤u§@ªí¦WºÙ
- Set Rng = Sh.[U1] '¾÷¥x©T©w±q[U1]¶}©l
- Do While Rng <> ""
- For i = 2 To Sh.[A1].End(xlDown).Row '[A1]©¹¤U¨ì³Ì«á³sÄòªº¸ê®Æ¦C¸¹
- If Rng.Cells(i, 1).Value <> "" Then
- If Not D.EXISTS(Rng.Value) Then 'EXISTS: ¶Ç¦^¦r¨åª«¥ó(key[ÃöÁä¦r])¦s¦b=True
- D(Rng.Value) = Array(Rng.Cells(i, 1).Value) '¦r¨åª«¥ó(key).Item=>¤º®e,¸m¤J°}¦C
- Else
- AR = D(Rng.Value) '°}¦C¨ú±o¦r¨åª«¥ó(key).Item
- ReDim Preserve AR(UBound(AR) + 1) '°}¦CÂX¥R¼W¥[¤@¤¸¯À)
- AR(UBound(AR)) = Rng.Cells(i, 1).Value '°}¦C(UBound(AR))¤¸¯Àªº¤WÈ
- D(Rng.Value) = AR '¦r¨åª«¥ó(key[ÃöÁä¦r])=°}¦C
- End If
-
- End If
- Next
- Set Rng = Rng.Offset(, 1) '¦V¥k²¾°Ê
- Loop
- End If
- Next
- With Sheets("·JÁ`")
- .UsedRange.Clear
- i = 1
- For Each AR In D.KEYS '¦r¨åª«¥ó(key)
- .Cells(1, i) = AR
- .Cells(2, i).Resize(UBound(D(AR)) + 1) = Application.WorksheetFunction.Transpose(D(AR)) '¤@ºû°}¦CÂন¤Gºû°}¦C
- i = i + 1
- Next
- .UsedRange.Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:= _
- xlYes, OrderCustom:=1, Orientation:=xlLeftToRight '±Æ§Ç´`¦C(¾î¦V)
- End With
- End Sub
½Æ»s¥N½X |
|