ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý]§R°£¤£­«½Æªº¸ê®Æ,¥u¯d¤U­«½Æªº¸ê°T

¦^´_ 1# boblovejoyce
¸Õ¸Õ¬Ý
  1. Option Explicit
  2. Sub EX()
  3.     Dim D As Object, DD As Object, E As Variant, Ar(), S As String, i As Integer
  4.     Set D = CreateObject("SCRIPTING.DICTIONARY")
  5.     '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
  6.     Set DD = CreateObject("SCRIPTING.DICTIONARY")
  7.     With Range("A1").CurrentRegion
  8.     'CurrentRegion ÄÝ©Ê ¶Ç¦^ Range ª«¥ó¡A¸Óª«¥ó¥Nªí¥Ø«eªº°Ï°ì¡C¥Ø«e°Ï°ì¬O«ü¥H¥ô·NªÅ¥Õ¦C¤ÎªÅ¥ÕÄ檺²Õ¦X¬°Ãä¬Éªº½d³ò¡C°ßŪ¡C
  9.         For Each E In .Rows
  10.             S = E.Cells(1, 2) & "-" & E.Cells(1, 3)
  11.             If D.Exists(S) Then      '¦r¨åª«¥ó ªºÃöÁä¦r¦s¦b
  12.                 Ar = D(S)
  13.                 ReDim Preserve Ar(1 To 3, 1 To UBound(Ar, 2) + 1)
  14.                 'Preserve ¿ï¾Ü©Ê¤Þ¼Æ¡C·í§ïÅܭ즳°}¦C³Ì«á¤@ºûªº¤j¤p®É¡A¤´µM«O¦³­ì¨Óªº¸ê®ÆªºÃöÁä¦r¡C
  15.                 For i = 1 To 3
  16.                     Ar(i, UBound(Ar, 2)) = E.Cells(1, i)
  17.                 Next
  18.                 D(S) = Ar
  19.                 DD(S) = Ar
  20.             Else
  21.                 D(S) = Application.Transpose(E)
  22.             End If
  23.         Next
  24.     End With
  25.     For Each E In DD.ITEMS  '¦r¨åª«¥óªº¶µ¥Ø
  26.         With Range("F" & Rows.Count).End(xlUp).Offset(1)
  27.             Ar = Application.Transpose(E)
  28.             .Resize(UBound(Ar), 3) = Ar
  29.         End With
  30.     Next
  31. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : ¡i»X½ªªº¦Û¥Ñ¡j¤H±`¦b¤°»ò³£¥i¥H¦Û¥Ñ¦Û¦bªº®É­Ô¡A«o³Q³oºØÀH¤ß©Ò±ýªº¦Û¥Ñ»X½ª¡AµêÂY®É¥ú¦Ó²@µLıª¾¡C
ªð¦^¦Cªí ¤W¤@¥DÃD