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

¤ñ¹ï¨âª½Ä檺¼Æ­È§R°£­«½Æ¾î¦C°ÝÃD

¦^´_ 1# greetingsfromtw
¸Õ¸Õ¬Ý ¬O³o¼Ë¶ý?
  1. Option Explicit
  2. Sub Ex()
  3.     Dim D As Object, Rng As Range, i As Long, St As String
  4.     Set D = CreateObject("SCRIPTING.DICTIONARY")
  5.     Set Rng = Range("B:P").Rows
  6.     For i = 2 To Rng.Rows.Count
  7.         If Application.CountA(Rng(1).Rows(i)) = 0 Then Exit For
  8.         With Rng.Rows(i)
  9.             St = Trim(.Cells(10)) & Trim(.Cells(12))
  10.            '**²Ä¤GÂI´N¬OCÄ楲¶·«DªÅ¥Õ
  11.             If .Cells(2) <> "" And St <> "" Then
  12.                 If D.EXISTS(St) = False Then D(St) = Rng.Rows(i).Value
  13.                 '1.­Y¨â­Ó©Î¦h­Ó¾î¦CªºÄæ¦ìK¼Æ­È¬Û¦P(©ÎªÅ¥Õ),¥BÄæ¦ìM¼Æ­È¤]¬Û¦P(©ÎªÅ¥Õ),
  14.                 '2.­Y¨â­Ó©Î¦h­Ó¾î¦CªºÄæ¦ìK¼Æ­È¬Û¦P,¦ýÄæ¦ìMªº¼Æ­È¤£¦P,
  15.             End If
  16.         End With
  17.     Next
  18.     If D.Count > 0 Then
  19.         Rng(1).Offset(, Rng.Columns.Count + 2).Resize(D.Count, Rng.Columns.Count).Value _
  20.                      = Application.Transpose(Application.Transpose(D.ITEMS))
  21.     End If
  22. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 4# greetingsfromtw
³o¼Ë¹ï¶Ü?
  1. Option Explicit
  2. Sub Ex()
  3.     Dim D(1 To 3) As Object, Rng As Range, i As Long, S1 As String, S2 As String, AR
  4.     Set D(1) = CreateObject("SCRIPTING.DICTIONARY")
  5.     Set D(2) = CreateObject("SCRIPTING.DICTIONARY")
  6.     Set D(3) = CreateObject("SCRIPTING.DICTIONARY")
  7.     Set Rng = Range("B:P").Rows
  8.     For i = 2 To Rng.Rows.Count
  9.         If Application.CountA(Rng(1).Rows(i)) = 0 Then Exit For
  10.         With Rng.Rows(i)
  11.             If .Cells(2) <> "" Then '**²Ä¤GÂI´N¬OCÄ楲¶·«DªÅ¥Õ
  12.                 S1 = .Cells(10)
  13.                 S2 = .Cells(12)
  14.                 If Not D(1).EXISTS(S1) And Not D(2).EXISTS(S2) Then
  15.                     '**¦r¨åª«¥ó1ªºKey¨S¦³ ¼Æ­È1  ¥B  ¦r¨åª«¥ó2ªºKey¨S¦³ ¼Æ­È2
  16.                         If S1 <> "" And S2 <> "" Then D(3)(S1 & S2) = Rng.Rows(i).Value
  17.                         D(1)(S1) = ""
  18.                         D(2)(S2) = ""
  19.                 ElseIf Not D(1).EXISTS(S1) And D(2).EXISTS(S2) Then
  20.                       '**¦r¨åª«¥ó1ªºKey¨S¦³ ¼Æ­È1  ¥B  ¦r¨åª«¥ó2ªºKey ¦³ ¼Æ­È2
  21.                      AR = Rng.Rows(i).Value
  22.                      AR(1, 12) = ""                        '**  ¤£­n¼Æ­È2
  23.                      D(3)(S1) = AR
  24.                 ElseIf D(1).EXISTS(S1) And Not D(2).EXISTS(S2) Then
  25.                     '**¦r¨åª«¥ó1ªºKey ¦³ ¼Æ­È1  ¥B  ¦r¨åª«¥ó2ªºKey ¨S¦³ ¼Æ­È2
  26.                      AR = Rng.Rows(i).Value
  27.                      AR(1, 10) = ""                       '**  ¤£­n¼Æ­È1
  28.                      D(3)(S2) = AR
  29.                 End If
  30.             End If
  31.         End With
  32.     Next
  33.     If D(3).Count > 0 Then
  34.         Rng(1).Offset(2, Rng.Columns.Count + 2).Resize(D(3).Count, Rng.Columns.Count).Value _
  35.                      = Application.Transpose(Application.Transpose(D(3).ITEMS))
  36.     End If
  37. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : ¡i°±º¢¤£«e¡A²×µL©Ò±o¡j¤H³£°g©ó´M§ä©_ÂÝ¡A¦]¦Ó°±º¢¤£«e¡FÁa¨Ï®É¶¡¦A¦h¡B¸ô¦Aªø¡A¤]¤FµL¥Î³B¡A²×µL©Ò±o¡C
ªð¦^¦Cªí ¤W¤@¥DÃD