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

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

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

(Àɮ׳sµ²:)

¦U¦ì«e½ú¦n,
¤p§Ì¹J¨ì¤@­Ó°ÝÃD,

¥»·Q¸ÕµÛ¨Ï¥Î¦r¨åª«¥ó,

¦ý¦]©Ò·Q¤ñ¹ïªº¨âÄæ¼Æ­È(KÄæ»PMÄæ)Äæ¦ì¦³¥i¯à·|¨ä¤¤¤@ÄæªÅ¥Õ,
¥t¤@Äæ«DªÅ¥Õ,
¦b³o¼Ëªº±¡§Î¤U­Y¬O¦]ªÅ¥Õ¦Ó§R°£,
®£©È·|§R¨ì¤£¸Ó§Rªº¸ê®Æ,

¤§«e¦³¤ñ·ÓªO¤W«e½ú´£¨Ñªºµ{¦¡½X¥h­×§ï«á°µ¥X¤@­ÓÀÉ®×,
À³¸Ó¬OªO¤W¨S¿ù,¦ý¤£ª¾¸Ó¦p¦ó¥Î·j¯Á¥\¯à¬d¸ß¦Û¤vªº¦^¤å(«D©«¤l),
¥H«á¨Ï¥Î«e½úµ{¦¡½X¹ê¦bÀ³¸Ó¥[µù¸Ñªþ¤W­ì¥X³B¤~¬O,
½Ð¨£½Ì,¤p§Ì¥H«á¤@©wª`·N.

¥Ø«e³o­ÓÀÉ®×ÁÙ¬O¦³¨Ç°ÝÃD,

¦³®É©ú©ú¨âÄæ¬Ò¬°ªÅ¥Õ,¦ý¸Ó¾î¦C¤´¥¼³Q§R°£;
²Ä¤GÂI´N¬OCÄ楲¶·«DªÅ¥Õ,
¦ý¤£ª¾¸Ó¦p¦ó°µ­×§ï.

ÁÙ¦³¤@ÂI´N¬O¤£ª¾¦ó¬G,
©ú©ú­«½Æªº¸ê®Æ,ÁÙ¬OµLªk¹ý©³§R°£,
³oÂI¤]¥O¤p§Ì¬Û·í¤£¸Ñ,
¤Ö¶q¸ê®Æ´ú¸Õ®É¨S¦³¤Ó¤j°ÝÃD,

¦ý¤j¶q¸ê®Æ´N·|¥X²{°ÝÃD.



¥ý±N¤p§Ì©Ò´Á±æªºµ{¦¡½X³W«h¸Ô­z¦p¤U¥H¨Ñ°Ñ¦Ò:

(²Ä¤@¾î¦C¬°Äæ¦ì¦WºÙ,¤£°µ¤ñ¹ï.
¸ê®Æ¦@­p15Äæ¦ì,KÄæ»PMÄ欰·Q­n¤ñ¹ïªº¼Æ­È,
¨âÄæ¼Æ­ÈµLÃö³s,¤£¤¬¬Û¤ñ¹ï,¶È¦Û¦æ¤ñ¹ï)

1.­Y¨â­Ó©Î¦h­Ó¾î¦CªºÄæ¦ìK¼Æ­È¬Û¦P(©ÎªÅ¥Õ),¥BÄæ¦ìM¼Æ­È¤]¬Û¦P(©ÎªÅ¥Õ),
«h¥u¯d¤U¤@¾î¦C,¨ä¾l§R°£.

2.­Y¨â­Ó©Î¦h­Ó¾î¦CªºÄæ¦ìK¼Æ­È¬Û¦P,¦ýÄæ¦ìMªº¼Æ­È¤£¦P,
«h³o¨Ç¾î¦C¤£ÅÜ°Ê.
¦b³o¨Ç¾î¦C¤¤,¯d¤U¤@Äæ¦ìªºK¼Æ­È,¨ä¾l¾î¦CªºÄæ¦ìM²M°£.
Äæ¦ìMªº¼Æ­È»P¦ì¸m¤£ÅÜ°Ê.

3.»P¤W­z³W«h¬Û¦ü,
­Y¨â­Ó©Î¦h­Ó¾î¦CªºÄæ¦ìK¼Æ­È¤£¦P,¦ýÄæ¦ìM¼Æ­È¬Û¦P,
«h³o¨Ç¾î¦C¤£ÅÜ°Ê.
Äæ¦ìKªº¼Æ­È»P¦ì¸m¤£ÅÜ°Ê.
¯d¤U¤@Äæ¦ìM¼Æ­È,¨ä¾l¾î¦CªºÄæ¦ìL¼Æ­È²M°£.

4.­Y¾î¦CªºÄæ¦ìK¸òÄæ¦ìM§¡¬°ªÅ¥Õ,
«h§R°£¦¹¾î¦C.

5.Äæ¦ìKªº¼Æ­È»PÄæ¦ìMªº¼Æ­È¤£¤¬¬Û¤ñ¸û,¨âÄæ¼Æ­È¦U¦Û¤ñ¹ï,¨S¦³ÃöÁp.

6.Äæ¦ìK¤ÎÄæ¦ìMªº¼Æ­È§¡¬°¥¿¾ã¼Æ©ÎªÅ¥Õ,¤£·|¬O0©Î¨ä¥L­È.


ªþ¤W¤p§Ì°Ñ¦Ò«e½úµ{¦¡½X­×§ï«áªºµ{¦¡¤ÎªþÀɦp¤U:

ªþÀɤU¸ü(Google¶³ºÝµwºÐ)
  1. Public Sub extwo()
  2. Dim ar()
  3. Range("c2").Resize(Cells(Rows.Count, 3).End(xlUp).Row, 1).Select
  4. Selection.Resize(Selection.Rows.Count - 1, 1).Select
  5. Selection.Copy Range("a2")

  6. arr = Range("A2:AD" & Cells(Rows.Count, 1).End(xlUp).Row)
  7. K = UBound(arr)
  8. For i = 1 To UBound(arr) - 1
  9.     For j = i + 1 To UBound(arr)
  10.         If arr(i, 1) = "" Or arr(j, 1) = "" Then GoTo 10
  11.         If arr(i, 11) & arr(i, 13) = arr(j, 11) & arr(j, 13) Then
  12.             For L = 1 To UBound(arr, 2)
  13.                 arr(j, L) = ""
  14.             Next
  15.             K = K - 1
  16.         ElseIf arr(i, 11) = arr(j, 11) And arr(i, 13) <> arr(j, 13) Then
  17.             If arr(i, 13) = "" Then
  18.             arr(i, 11) = ""
  19.             Else
  20.             arr(j, 11) = ""
  21.             End If

  22.         ElseIf arr(i, 11) <> arr(j, 11) And arr(i, 13) = arr(j, 13) Then
  23.             If arr(i, 11) = "" Then
  24.             arr(i, 13) = ""
  25.             Else
  26.             arr(j, 13) = ""
  27.             End If

  28.         ElseIf arr(i, 11) = "" And arr(i, 13) = "" Then
  29.         arr(i, 1) = ""

  30.         ElseIf arr(j, 11) = "" And arr(j, 13) = "" Then
  31.         arr(j, 1) = ""
  32. '
  33.         End If
  34.         
  35. 10:
  36.     Next
  37. Next

  38. ReDim ar(1 To K, 1 To UBound(arr, 2))
  39. K = 1
  40. For i = 1 To UBound(arr)
  41.     If arr(i, 1) <> "" Then
  42.         For L = 1 To UBound(arr, 2)
  43.             ar(K, L) = arr(i, L)
  44.         Next
  45.         K = K + 1
  46.     End If
  47. Next
  48. Range("a2:AD" & Cells(Rows.Count, 1).End(xlUp).Row).Clear
  49. [a2].Resize(UBound(ar), UBound(arr, 2)) = ar

  50. Columns(1).ClearContents
  51. [L2].Select
  52. End Sub
½Æ»s¥N½X
¥i¥Hªº¸Ü,
§Æ±æ¯à°÷¦³«e½ú¤£§[«üÂI¤p§Ì,¤Q¤À·PÁÂ.

¦^´_ 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

[ª©¥DºÞ²z¯d¨¥]
  • GBKEE(2016/10/17 14:07): ªþ¤W½d¨ÒÀÉ®×(¥ÎÀ£ÁYÀɤW¶Ç),·|¸û²M·¡§Aªº»¡©ú

¥»©«³Ì«á¥Ñ greetingsfromtw ©ó 2016-10-17 13:25 ½s¿è

¦^´_ 2# GBKEE

«D±`·PÁÂGBKEE«e½úµL¨p´£¨Ñµ{¦¡½X,

¤]Åý¤p§Ìª¾¹D¦r¨åª«¥ó¬O¥i¥H³o¼Ë¨Ï¥Îªº,
¤p§Ì¤µ¤Ñ¬ã¨s¤F¦n¤@°}¤l,±q¤¤Àò¯q¬Æ¦h,
·Ó³o¼Ë¬Ý¨Ó,¦r¨åª«¥ó¹ê¦b¬O¤Ó±j¤j¤F,
¥i¥Î©ó¸Ñ¨M³\¦h´Æ¤â°ÝÃD.


¥t¥~­È±o¤@´£ªº¬O,
«e½úÁÙ¶O¤ß¦bµ{¦¡½X¤¤´£¨Ñ¬ÛÃöµù¸Ñ¥H§Q¤p§Ì¾Ç²ß¬ã¨s¤§¥Î,
³oÂI¥O¤H·P°Ê,¦A¦¸·PÁ«e½ú.


¥i¥Hªº¸Ü½Ð¤¹³\¤p§Ì¤æÁx¶i¤@¨B¸ß°Ý¬ÛÃö°ÝÃD,

====

1.­Y¨â­Ó©Î¦h­Ó¾î¦CªºÄæ¦ìK¼Æ­È¬Û¦P,¦ýÄæ¦ìMªº¼Æ­È¤£¦P,
«h³o¨Ç¾î¦C¤£ÅÜ°Ê.
¦b³o¨Ç¾î¦C¤¤,¯d¤U¤@Äæ¦ìªºK¼Æ­È,¨ä¾l¾î¦CªºÄæ¦ìM²M°£.
Äæ¦ìMªº¼Æ­È»P¦ì¸m¤£ÅÜ°Ê.
¾î¦C§¡¤£§R°£.
2.»P¤W­z³W«h¬Û¦ü,
­Y¨â­Ó©Î¦h­Ó¾î¦CªºÄæ¦ìK¼Æ­È¤£¦P,¦ýÄæ¦ìM¼Æ­È¬Û¦P,
«h³o¨Ç¾î¦C¤£ÅÜ°Ê.
Äæ¦ìKªº¼Æ­È»P¦ì¸m¤£ÅÜ°Ê.
¯d¤U¤@Äæ¦ìM¼Æ­È,¨ä¾l¾î¦CªºÄæ¦ìK¼Æ­È²M°£.
¾î¦C§¡¤£§R°£.
===

¦b¨Ï¥Î«e½ú©Ò´£¨Ñªºµ{¦¡½X®É,

­Y¹J¤W­±©Ò­z¨âÂI±¡§Î,


«h·|¥X²{°ÝÃD,³o¨Ç¾î¦C¬Û¦Pªº¼Æ­È¤£·|³Q§R°£.


¤]¬O¤p§Ìªí¹F¯à¤O¤£¤Ó¦n,½Ð¨£½Ì,¦³¨Ç¦a¤è¤]¼g¿ù,
¤w²¤§@­×§ï,
¥H«á¤@©w·|±N°ÝÃD°µ§ó²M·¡ªº§e²{¨ÃÀˬd¹L«á¦A´£¥æ,³y¦¨§xÂZ¤£¦n·N«ä.


¤p§Ì¤æÁx,

¤£ª¾¬O§_¯à°÷³Â·Ð«e½ú¤£§[«üÂI°g¬z,¤Q¤À·PÁÂ.

TOP

¦^´_ 2# GBKEE

·PÁ«e½ú´£¿ô,¥H«áµo¤å¸ß°Ý·|ª½±µªþ¤WÀ£ÁYÀɸû¬°ª½±µ,¤å¦r»¡©ú¦³®É¤£©ö»¡©ú²M·¡.
ªþ¤WÀÉ®×,½Ð«e½ú°Ñ¦Ò:


¤p§Ì±NÀÉ®×»¡©ú¶K¦Ü¦¹¥H§Q¹ï·Ó¥Î:

»¡©ú:
­ì©l¸ê®Æ¾î¦C2¦Ü¾î¦C4ªº¼Æ­È2¬Û¦P,¦ý¼Æ­È1¤£¦P,¬G¼Æ­È1¤£°Ê,¼Æ­È2«O¯d¤@­Ó,¨ä¾l§R°£.
­ì©l¸ê®Æ¾î¦C5¦Ü¾î¦C7ªº¼Æ­È1¬Û¦P,¦ý¼Æ­È2¤£¦P,¬G¼Æ­È2¤£°Ê,¼Æ­È1«O¯d¤@­Ó,¨ä¾l§R°£.
­ì©l¸ê®Æ¾î¦C8¦Ü10ªº¼Æ­È2§¡¬Û¦P,¼Æ­È1ªÅ¥Õ,¬G¥u«O¯d¤@¾î¦C,¨ä¾l¨â¾î¦C§R°£.«O¯d­þ¤@¾î¦C§¡¥i.
­ì©l¸ê®Æ¾î¦C11¦Ü13ªº¼Æ­È1§¡¬Û¦P,¼Æ­È2ªÅ¥Õ,¬G¥u«O¯d¤@¾î¦C,¨ä¾l¨â¾î¦C§R°£.«O¯d­þ¤@¾î¦C§¡¥i.
­ì©l¸ê®Æ¾î¦C14ªº¼Æ­È1¤Î¼Æ­È2§¡¬°ªÅ¥Õ,¬Gª½±µ§R°£¦¹¾î¦C.

ÁÙ±æ«e½ú¤£§[«üÂI°g¬z,¤Q¤À·PÁÂ.

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

¥»©«³Ì«á¥Ñ ­ã´£³¡ªL ©ó 2016-10-18 10:32 ½s¿è

2000µLªk¥¿±`¶}±ÒªþÀÉ¡]®æ¦¡¤Ó¦h¡^¡A
¥u¯à²q¡AµLªk¸Õ¸Ñ¡I

TOP

¦^´_ 5# GBKEE


«D±`·PÁÂGBKEE«e½ú­@¤ß´£¨Ñ¸Ñµª,
½T¹ê¥i¥H§¹¬ü¹B§@,¨S¦³°ÝÃD.

¯uªº¨S·Q¨ì¦r¨åª«¥óÁÙ¦³¦p¦¹°ª²`ªº¹B¥Î¤è¦¡,
¤p§Ì¹ïVBAªº¤F¸Ñ¹ê¦b¬O¤Ó¤Ö¤F,¤@©w§V¤O¾Ç²ß.·PÁ«e½úµL¨p«üÂI.

TOP

¦^´_ 6# ­ã´£³¡ªL

¹ê¦b©êºp,¤p§Ì·íªì¥uÅUµÛ¶ÇÀÉ,¨S¦Ò¼{¨ì¬Û®e©Ê°ÝÃD,
¥H«á¤p§Ìµo°Ý®ÉªºªþÀÉ·|°O±o§ï¦¨.xls®æ¦¡,³y¦¨§xÂZ¤£¦n·N«ä.

¤w¦b¦¹½gªþ¤W.xls®æ¦¡,½Ð«e½ú°Ñ¦Ò.

¤§«e¤]»X²a´£³¡ªL«e½ú«üÂI°ª²`§Þ¥©,¤p§Ì±q¤¤Àò¯q¤£¤Ö,ı±o³o­Ó°Q½×°Ï¤£¶È°ª¤â¦p¶³,¦Ó¥B³£Ä@·NµL¨p«üÂI¹³¤p§Ì³o¼ËªºVBA·s¤â,¹ê¦b«D±`·PÁÂ.

GBKEE«e½ú¤w¦³´£¨Ñ°ÝÃD¸Ñµª,¦ý¦P¤@­Ó°ÝÃDªº¸ÑµªªÖ©w¤£¥u¤@ºØ,­Y²a´£³¡ªL«e½úÄ@·N©âªÅ«üÂI¤p§Ì¨ä¥L¸Ñµª¤è¦¡´N¤Ó¦n,

¦A¦¸·PÁ«e½ú­ÌªºµL¨p«üÂI,
¤p§Ì¤@©w§V¤O¾Ç²ß.

20161018­×§ï(.xls®æ¦¡)-°ÝÃD-¦Û°Ê§R°£­«½Æ¼Æ­È¤ÎªÅ¥Õ¾î¦C.zip (164.67 KB)

TOP

¦^´_ 8# greetingsfromtw

ÁÙ¬OµLªk¥¿±`¶}±ÒÀÉ®×(®æ¦¡¤Ó¦h), ¤j·§²qµÛ¼g, ¯à¦Û¦æ§ó§ï³Ì¦n:
  1. Sub T_TEST()
  2. Dim Arr, i&, j%, xD, TK&, TM&, N&
  3. Arr = Range("A2:AD" & Cells(Rows.Count, 1).End(xlUp).Row)
  4. Set xD = CreateObject("Scripting.Dictionary")
  5. For i = 1 To UBound(Arr)
  6.     If Arr(i, 3) = "" Then GoTo 101 'CÄ椣¬°ªÅ
  7.     TK = "k" & Arr(i, 11):  TM = "m" & Arr(i, 13) '¼Æ¦r¦U¦Û«a¤W¤£¦P¤å¦r°Ï§O
  8.     If xD(TK & TM) = 1 Then GoTo 101 '¨âÄ槹¥þ¬Û¦P¥B¤w¯Ç¤J¦r¨å, ¤£³B²z
  9.     If xD(TK) = 1 Then Arr(i, 11) = "": GoTo 999 'K­È¬Û¦P¥B«D²Ä¤@µ§, ²MªÅK­È
  10.     If xD(TM) = 1 Then Arr(i, 13) = "": GoTo 999 'M­È¬Û¦P¥B«D²Ä¤@µ§, ²MªÅM­È
  11. 999: N = N + 1
  12.     For j = 1 To UBound(Arr, 2): Arr(N, j) = Arr(i, j): Next '¨ú±o§ó·s«áªº¸ê®Æ©ñ¦b­ì°}¦C
  13.     xD(TK & TM) = 1: xD(TK) = 1: xD(TM) = 1 '¯Ç¤J¦r¨åÀɨëa¤W1¬°ÃѧO½X
  14. 101: Next i
  15. If N = 0 Then Exit Sub
  16. [A2:AD2].Resize(UBound(Arr)).Clear '²MªÅ­ì¸ê®Æ
  17. [A2:AD2].Resize(N) = Arr '¶ñ¤J§ó·s¸ê®Æ
  18. End Sub
½Æ»s¥N½X

TOP

¦^´_ 9# ­ã´£³¡ªL
«D±`·PÁ²a´£³¡ªL«e½úµL¨p´£¨Ñµ{¦¡½X,¤p§Ì¤j¶}²´¬É.
¨â¦ì«e½ú©Ò¨Ï¥Îªº¸ÑÃD¤è¦¡³£¬O¤p§Ì«e©Ò¥¼¨£,»Ý­n¤@ÂI®É¶¡®ø¤Æ.
¯uªº«D±`·PÁÂ.

«á¨Óµo²{¸ÓÀɮפ£ª¾¦ó¬G³Q§iª¾¦³¤@®æ¦¡¦s¦b,«ç»ò²M¤]²M¤£±¼,
¥t¶}·sÀɦA§â¸ê®Æ­«·s¿é¤J«á§Y¸Ñ¨M°ÝÃD,
³y¦¨«e½ú§xÂZ,¯uªº«Ü¤£¦n·N«ä,¤U¦¸ªþÀɮɤ@©wª`·N.


¤p§Ì«_¬N±N«e½úµ{¦¡½X²¤°µ­×§ï«á,½T¹ê¤w¸Ñ¨M°ÝÃD,ªþ¤W­×§ï«áµ{¦¡½X¦p¤U,
¦A¦¸·PÁ«e½ú¼ö¤ß¨ó§U.
¦r¨åª«¥ó¯uªº¬O¤@ªù°ª²`¾Ç°Ý,¤@©w§V¤O¾Ç²ß.
  1. 'http://forum.twbts.com/viewthread.php?from=notice&tid=18582
  2. '·PÁ²a´£³¡ªL«e½ú´£¨Ñ­ì©lµ{¦¡½X
  3. '¦¹ª©¥»¬O±q«e½ú©Ò´£¨Ñ¤§­ì©lµ{¦¡½X¥h¶i¦æ­×§ï
  4. Sub T_TEST()
  5. Dim Arr, i&, j%, xD, TK, TM, N&
  6. Arr = Range("c2:AD" & Cells(Rows.Count, 3).End(xlUp).Row)
  7. Set xD = CreateObject("Scripting.Dictionary")
  8. For i = 1 To UBound(Arr)
  9.     If Arr(i, 1) = "" Then GoTo 101 'CÄ椣¬°ªÅ
  10.     TK = "k" & Arr(i, 9):  TM = "m" & Arr(i, 11) '¼Æ¦r¦U¦Û«a¤W¤£¦P¤å¦r°Ï§O
  11.     If xD(TK & TM) = 1 Then GoTo 101 '¨âÄ槹¥þ¬Û¦P¥B¤w¯Ç¤J¦r¨å, ¤£³B²z
  12.     If xD(TK) = 1 Then Arr(i, 9) = "": GoTo 999 'K­È¬Û¦P¥B«D²Ä¤@µ§, ²MªÅK­È
  13.     If xD(TM) = 1 Then Arr(i, 11) = "": GoTo 999 'M­È¬Û¦P¥B«D²Ä¤@µ§, ²MªÅM­È
  14. 999: N = N + 1
  15.     For j = 1 To UBound(Arr, 2): Arr(N, j) = Arr(i, j): Next '¨ú±o§ó·s«áªº¸ê®Æ©ñ¦b­ì°}¦C
  16.     xD(TK & TM) = 1: xD(TK) = 1: xD(TM) = 1 '¯Ç¤J¦r¨åÀɨëa¤W1¬°ÃѧO½X


  17. 101: Next i
  18. If N = 0 Then Exit Sub
  19. [c2:AD2].Resize(UBound(Arr)).Clear '²MªÅ­ì¸ê®Æ

  20. [c2:AD2].Resize(N) = Arr '¶ñ¤J§ó·s¸ê®Æ
  21. End Sub
½Æ»s¥N½X

TOP

        ÀR«ä¦Û¦b : ¬O«D·í±Ð¨|¡AÆg¬ü§@ĵ±§¡C
ªð¦^¦Cªí ¤W¤@¥DÃD