[µo°Ý]§R°£¤£«½Æªº¸ê®Æ,¥u¯d¤U«½Æªº¸ê°T
- ©«¤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# boblovejoyce
¸Õ¸Õ¬Ý- Option Explicit
- Sub EX()
- Dim D As Object, DD As Object, E As Variant, Ar(), S As String, i As Integer
- Set D = CreateObject("SCRIPTING.DICTIONARY")
- 'Dictionary ª«¥ó»P PERL ¬ÛÃö°}¦C¥þµ¥¡C¥i¥H¬O¥ô¦ó«¬¦¡ªº¸ê®Æªº¶µ¥Ø³QÀx¦s¦b°}¦C¤¤¡C¨CÓ¶µ¥Ø³£»P¤@Ӱߤ@ªºÃöÁä¦r¬ÛÃö¡C¸ÓÃöÁä¦r¥Î¨Ó¨ú¥X³æÓ¶µ¥Ø¡A³q±`¬O¾ã¼Æ©Î¦r¦ê¡A¥i¥H¬O°£°}¦C¥~ªº¥ô¦ó«¬ºA¡C
- Set DD = CreateObject("SCRIPTING.DICTIONARY")
- With Range("A1").CurrentRegion
- 'CurrentRegion ÄÝ©Ê ¶Ç¦^ Range ª«¥ó¡A¸Óª«¥ó¥Nªí¥Ø«eªº°Ï°ì¡C¥Ø«e°Ï°ì¬O«ü¥H¥ô·NªÅ¥Õ¦C¤ÎªÅ¥ÕÄæªº²Õ¦X¬°Ãä¬Éªº½d³ò¡C°ßŪ¡C
- For Each E In .Rows
- S = E.Cells(1, 2) & "-" & E.Cells(1, 3)
- If D.Exists(S) Then '¦r¨åª«¥ó ªºÃöÁä¦r¦s¦b
- Ar = D(S)
- ReDim Preserve Ar(1 To 3, 1 To UBound(Ar, 2) + 1)
- 'Preserve ¿ï¾Ü©Ê¤Þ¼Æ¡C·í§ïÅÜ즳°}¦C³Ì«á¤@ºûªº¤j¤p®É¡A¤´µM«O¦³ì¨Óªº¸ê®ÆªºÃöÁä¦r¡C
- For i = 1 To 3
- Ar(i, UBound(Ar, 2)) = E.Cells(1, i)
- Next
- D(S) = Ar
- DD(S) = Ar
- Else
- D(S) = Application.Transpose(E)
- End If
- Next
- End With
- For Each E In DD.ITEMS '¦r¨åª«¥óªº¶µ¥Ø
- With Range("F" & Rows.Count).End(xlUp).Offset(1)
- Ar = Application.Transpose(E)
- .Resize(UBound(Ar), 3) = Ar
- End With
- Next
- End Sub
½Æ»s¥N½X |
|
|
|
|
|
|