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

[µo°Ý] §ïµ½¤jµ§¸ê®Æ³B²z

[µo°Ý] §ïµ½¤jµ§¸ê®Æ³B²z

½Ð°Ý¦U¦ì¤j¤j

¤p§Ì§Ú¥Ø«e¦³¨â­Ó¤u§@ªí

¨Ì¾Ú"²£«~¤u§@ªí"(A) ªº ID & PartNumber ¤ñ¹ï¨ì "ª«®Æ¤u§@ªí"(B) ªº ID & PartNumber

¦pªG¦³¤@¼Ëªº¡A«h§âAªº¸ê®ÆCOPY¨ìB¸Ì­±

¦pªG¨S¦³¬Û¦Pªº¡A«h¸É¨ìBªº³Ì¤U¤è


¸ê®Æ¶q¤pªº®É­ÔÁÙ¥i¥H

¦ý§Ú¸ê®Æ¦³´X¤dµ§·|ÅܦnºC¦nºC ¤j¬ù­n¶]10¤ÀÄÁ¥ª¥k

¥i¯à¬OFOR°j°éªº°ÝÃD

¤£ª¾¦³¤°»ò§ïµ½¤èªk

³Â·Ð¦U¦ì¤j¤j

¥H¤U¬°ªþÀÉ

P.S. ¤ñ¹ïÄæ¦ì¦³§R´î¡A©Ò¥HªþÀɪº³B²z³t«×¦n¹³ÁÙ¥i¥H

forum.zip (118.3 KB)
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-1-22 14:52 ½s¿è

¦^´_ 1# li_hsien

§ï¥Î Collection ª«¥ó ¤£¥Î Dictionary ª«¥ó
  1. Option Explicit
  2. Sub Ex()
  3.     Dim d As New Collection, AR(1 To 7), i As Integer, Rng(1 To 2) As Range, E As Variant
  4.     On Error Resume Next              'µù¸Ñ1 :Collection·s¼WªºKEY¦p³Q¨Ï¥Î©Î¦³¿ù»~
  5.     With Worksheets("²£«~ºÞ±±²M³æ")
  6.         For i = 2 To .Range("J1").End(xlDown).Row
  7.             AR(1) = .Range("E" & i)             'PRODUCT ID(A)
  8.             AR(2) = .Range("F" & i)             'CHILDPARTNUMBER(B)
  9.             AR(3) = .Range("C" & i)             'MP date(G)
  10.             AR(4) = .Range("A" & i)             '¶g§O(H)
  11.             AR(5) = .Range("B" & i)             '§ó·s¶g§O(I)
  12.             AR(6) = DateDiff("d", Date, AR(3))  '¤u§@¤é(M)
  13.             AR(7) = .Range("J" & i)             'Product ID & PartNumber
  14.             d.Add AR, .Range("J" & i).Value     '¬ö¿ý²£«~ªºID & PartNumber
  15.             
  16.             '**** ©Ò¥H¬O¥H"²£«~"¾Ö¦³ªº¬°¥D¡A¤£¹L²£¥X"ª«®Æ"¤§«e±o¥ý§R°£"²£«~"­«½Æªº³¡¤À->Rng(1)
  17.             '**** ·í²£«~ªºID & PartNumber(F)¦³­«½Æ®É¦³->µù¸Ñ1: Err <> 0
  18.             If Err <> 0 Then
  19.                 Err.Clear
  20.                 If Rng(1) Is Nothing Then       'Rng(1)->¬ö¿ý¦³­«½Æ²£«~ªºID & PartNumber
  21.                     Set Rng(1) = .Range("J" & i)
  22.                 Else
  23.                     Set Rng(1) = Union(.Range("J" & i), Rng(1))
  24.                 End If
  25.             End If
  26.         Next
  27.     End With
  28.     With Worksheets("ª«®ÆºÞ±±²M³æ")
  29.         For Each E In .Range("F:F").SpecialCells(xlCellTypeConstants).Offset(1)
  30.             .Range("A" & E.Row) = d(E.Value)(1)
  31.             .Range("B" & E.Row) = d(E.Value)(2)
  32.             .Range("G" & E.Row) = d(E.Value)(3)
  33.             .Range("H" & E.Row) = d(E.Value)(4)
  34.             .Range("I" & E.Row) = d(E.Value)(5)
  35.             .Range("M" & E.Row) = d(E.Value)(6)
  36.             .Range("F" & E.Row) = d(E.Value)(7)
  37.             
  38.             '**** "²£«~"¦³ "ª«®Æ"¦³  «h§â "²£«~" ªº¸ê®ÆCOPY¨ì "ª«®Æ" ­ì¥»ªº¦ì¤l¤W
  39.             '**** ²£«~"¦³ "ª«®Æ"¦³ -> Err = 0
  40.             If Err = 0 Then                     'ª«®ÆªºID & PartNumber,¦s¦b²£«~ªºID & PartNumber¤¤
  41.                 d.Remove E.Value                '°£¥h:²£«~ªºID & PartNumber
  42.             '**** ¦³²Ä¤Gµ§¤w°£¥hªº²£«~ID & PartNumber-> ¤w°£¥h(¨S¦³³oKEY­È): Err <> 0
  43.             ElseIf Err <> 0 And E <> "" Then
  44.             '**** "²£«~"¨S¦³ "ª«®Æ"¦³ «h§â"ª«®Æ"¾ãÄæ§R°£±¼ -> Rng(2)
  45.                 If Rng(2) Is Nothing Then       '¨úªºÀx¦s®æªº¦ì¸m
  46.                     Set Rng(2) = E
  47.                 Else
  48.                     Set Rng(2) = Union(E, Rng(2))
  49.                 End If
  50.             End If
  51.             Err.Clear
  52.         Next
  53.         If d.Count > 0 Then
  54.             
  55.             'C ***²£«~"¦³ "ª«®Æ"¨S¦³ «h§â·s¼W¦h¥X¨Óªº¼W¥[¨ì "ª«®Æ" ³Ì¤U­±
  56.             i = 0
  57.             With .Range("A1").End(xlDown)
  58.                 For Each E In d
  59.                     i = i + 1
  60.                     .Offset(i).Range("A1") = E(1)
  61.                     .Offset(i).Range("B1") = E(2)
  62.                     .Offset(i).Range("G1") = E(3)
  63.                     .Offset(i).Range("H1") = E(4)
  64.                     .Offset(i).Range("I1") = E(5)
  65.                     .Offset(i).Range("M1") = E(6)
  66.                     .Offset(i).Range("F1") = E(7)
  67.                 Next
  68.             End With
  69.         End If
  70.     End With
  71.     If Not Rng(1) Is Nothing Then
  72.     '**** §R°£"²£«~"­«½Æªº³¡¤À->Rng(1)
  73.         If MsgBox("§R°£­«½Æªº[ID & PartNumber]", vbQuestion + vbYesNo, "²£«~ºÞ±±²M³æ") = vbYes Then
  74.             Rng(1).EntireRow.Delete
  75.         End If
  76.     End If
  77.    
  78.     If Not Rng(2) Is Nothing Then
  79.         '**** "²£«~"¨S¦³ "ª«®Æ"¦³ «h§â"ª«®Æ"¾ãÄæ§R°£±¼ -> Rng(2)
  80.         If MsgBox("§R°£­«½Æªº[ID & PartNumber]", vbQuestion + vbYesNo, "ª«®ÆºÞ±±²M³æ") = vbYes Then
  81.            Rng(2).EntireRow.Delete
  82.         End If
  83.     End If
  84.     MsgBox "Ok"
  85. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 2# GBKEE

ªO¤j§Úµo²{¤F¤@ÂI°ÝÃD

§Ú¦pªG¦b²£«~¨ºÃä§R±¼¤@µ§

¦bª«®Æ¨º¨Ã¨S¦³§R°£±¼

·s¼W¥[ªº¸ÜÁÙOK


³Ì«áªO¤jÀ°§Ú³]¸mªº§R°£´£¥Ü

¬°¤°»ò§R±¼«á¥u³Ñ¤U4.5µ§§r???


§Ú¥Î2007ªº²¾°£­«½Æ¡A¨Ã¨S¦³³o»ò¦h­«½Æ

¤£ª¾°ÝÃD¥X¦b­þ¸Ì???



³Â·ÐÀ°§Ú¬Ý¬Ý

ÁÂÁ  :  )
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

TOP

¦^´_ 2# GBKEE

ÁÂÁ¤j¤jªºÀ°¦£

¥i¬O§Úµo²{ÁÙ¬O¨S¦³§R°£±¼­C

²£«~¨S¦³ªº¡Aª«®Æ¨ºÃäÁÙ¬O¦³¥X²{

§Ú¬O¦b²£«~¤¤¶¡ÀH«K§R¤@µ§´ú¸Õªº


¨º¤j¤jªº­«½Æ´£¥Ü

§Ú¥Î2007¤º«Øªº²¾°£­«½Æ´ú¸Õ

µo²{ÁÙ¬O¦h§R¤F¡A¥i¬Oµ§¼Æ¤£¦h

§Ú­n¯d¦³­«½Æªº²Ä¤@µ§
EX:
A,B,C,A,A,B,C,D
§Ú­n¯dA,B,C,D

¤£ª¾¤j¤j¬O¤£¬O§â­«½Æªº³£§R¤F


³Â·ÐÀ°§Ú¬Ý¬Ý  ·PÁ  :  )
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

TOP

¦^´_ 2# GBKEE

ª©¤j§Ú¤S¥X²{¤F@@

§Ú¸Õ¤F¤@¸ÕÁÙ¬O©Ç©Çªº­C

²£«~¦pªG¦b¸ê®Æ¤¤¦³·s¼W

¦n¹³§ì¤£¨ìª«®Æ¨ºÃä

·|©Ç©Çªº

ÁÙ¬O¥u¯à¦b³Ì¤U­±·s¼W


¦pªG§Ú¦b²£«~ªº¸ê®Æ¤¤§R°£¤@µ§

ª«®Æ¨ºÃäÁÙ¬O·|¥X²{@@

¥»¨­¦³2007ªºÃö«Y
§ÚÅçÃÒ¸ê®Æ­«½ÆÀ³¸Ó³Ñ¤U1026µ§
ª«®Æ¨ºÃäOK ¤£¹L²£«~¨ºÃäÁÙ¬O¤£¤@­P


¤S¦A¦¸³Â·Ð¤j¤j¤F

ÁÂÁ§A  :  )
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

TOP

¦^´_ 5# li_hsien
[A,B,C,A,A,B,C,D§Ú­n¯dA,B,C,D]
  1. d.Add AR, .Range("J" & i).Value
  2.             '****** A,B,C,A,A,B,C,D§Ú­n¯dA , B, C,D.. ³o¸Ì¦b³B²z.
  3.             If Err <> 0 Then                   '¿ù»~: ²£«~­«½Æªº[ID & PartNumber]
  4.                 Err.Clear
  5.                 If Rng(1) Is Nothing Then             '¬ö¿ý:²£«~­«½Æªº[ID & PartNumber]ªº¦ì¸m
  6.                     Set Rng(1) = .Range("J" & i)
  7.                 Else
  8.                     Set Rng(1) = Union(.Range("J" & i), Rng(1))
  9.                 End If
  10.             End If
½Æ»s¥N½X
[²£«~¨S¦³ªº¡Aª«®Æ¨ºÃäÁÙ¬O¦³¥X²{]
  1. '******* §Ú¦pªG¦b²£«~¨ºÃä§R±¼¤@µ§,¦bª«®Æ¨º¨Ã¨S¦³§R°£±¼??³o¸Ì¦³§@³B¸Ì
  2.             If Err = 0 Then                     'ª«®ÆªºID & PartNumber,¦³¦s¦b²£«~ªºID & PartNumber¤¤
  3.                 d.Remove E.Value                '°£¥h:²£«~ªºID & PartNumber
  4.             Else  '-> Err <> 0 ¦³¿ù»~
  5.             '¿ù»~1:¤w°£¥h²£«~ªºID & PartNumber
  6.             '¿ù»~2:ª«®ÆªºID & PartNumber,¤£¦s¦b²£«~ªºID & PartNumber¤¤
  7.                 If Rng(2) Is Nothing Then       '¬ö¿ýÀx¦s®æªº¦ì¸m
  8.                     Set Rng(2) = E
  9.                 Else
  10.                     Set Rng(2) = Union(E, Rng(2)) '¬ö¿ýÀx¦s®æªº¦ì¸m
  11.                 End If
  12.             End If
  13.             '*********************************************************
  14.             Err.Clear
½Æ»s¥N½X
½Ð¤W¶Ç´ú¸ÕªºÀɮ׬ݬÝ
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 6# GBKEE

§Ú³£¬Oª½±µ¦A¦¸COPY¹L¥h

­è­è¦A¦¸½T»{

·s¼WÀ³¸ÓOK

¤£¹L¦n¹³³£¬O­n«ö¤UMSGBOX½T»{«á¤~¥i¥H


¥i¬O²¾°£«á¼Æ¶q¤£¹ï

ªþÀÉÁÙ¦³¨â±i¹Ï

¤@±i¬O­ì¦³¸ê®Æ

¥t¤@±i¬O¥Î¤F²¾°£­«½Æ«áªº¸ê®Æ

·Ð½Ð¤j¤jÀ°§Ú¬Ý¬Ý


forum.zip (256.48 KB)
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-1-22 12:02 ½s¿è

¦^´_ 7# li_hsien

7#ªºÀÉ®×,°õ¦æ2#ªºµ{¦¡½X

§ä¥X ª«®ÆºÞ±±²M³æ (²£«~¨S¦³©Îª«®Æ­«½Æ)ªºID




1194¦P¦C¬°²£«~ºÞ±±²M³æ,ª«®ÆºÞ±±²M³æªº³Ì«á¤@µ§¸ê®Æ



·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 8# GBKEE

ªO¤j§Ú¦A´ú¸Õ¤F¤@¤U

¦bª«®Æ©Î¬O²£«~ªº¤u§@ªí°õ¦æÀ³¸Ó³£¨S¦³®t§O§a


§Ú¤£¤ÓÀ´²Ä¤@¦¸§R°£­«½Æªº°Ê§@

¦]¬°ªþÀɪº¸ê®Æ¤@¶}©l¦b"²£«~"¨ºÃ䦳1801¶µ¡A"ª«®Æ"¨ºÃ䦳1206¶µ

§Ú¥ý¥Î²¾°£­«½Æ¿z¤@¦¸"²£«~"¨ºÃ䪺¶µ¥Ø¡A¥u³Ñ¤U1206¶µ

¥i¬O§Ú¥Î¤Fµ{¦¡¶]¥u³Ñ¤U1196¶µ

À³¸Ó¬O¦h§R¤FªO¤j¹Ï¥Üªº³¡¤À



§Úªº³B²z¬yµ{¬O¥ý¨Ì¾Ú"²£«~"¸Ìªº¨Ó²£¥X"ª«®Æ"¸Ì­±ªº

°Ê§@ ¬O¦pªG (³£¬O¥HID & PART NUMBER¬°¨Ì¾Ú)
"²£«~"¦³ "ª«®Æ"¦³  «h§â "²£«~" ªº¸ê®ÆCOPY¨ì "ª«®Æ" ­ì¥»ªº¦ì¤l¤W
"²£«~"¦³ "ª«®Æ"¨S¦³ «h§â·s¼W¦h¥X¨Óªº¼W¥[¨ì "ª«®Æ" ³Ì¤U­±
"²£«~"¨S¦³ "ª«®Æ"¦³ «h§â"ª«®Æ"¾ãÄæ§R°£±¼

©Ò¥H¬O¥H"²£«~"¾Ö¦³ªº¬°¥D¡A¤£¹L²£¥X"ª«®Æ"¤§«e±o¥ý§R°£"²£«~"­«½Æªº³¡¤À

³Ì«áµ²ªG¬O"²£«~"¸ò"ª«®Æ"ªº¶µ¥Ø¼Æ·|¬O¤@¼Ëªº¨S¦³¿ù


¤£¹L´N¦b¤@¶}©lªº²¾°£¦³¨Ç°ÝÃD

°µ¹L²Ä¤@¦¸°Ê§@«á¡A§Ú¦A´ú¸Õ§R§R´î´î³o¨Ç°Ê§@¡A³£«Ü¶¶§Q¨S¦³°ÝÃD   :  )



¦³ÂI¤¾ªø@@

·Ð½ÐªO¤j¬Ý¬Ý

ÁÂÁÂ
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

TOP

¦^´_ 9# li_hsien
2#ªºµ{¦¡½Ð§A­×§ï¤@¤U¬Ý¬Ý²£«~ºÞ±±²M³æ­«½ÆªºID
  1. '********* "²£«~ºÞ±±²M³æ" §R°£­«½Æªº[ID & PartNumber]*******************
  2.     If Not Rng(1) Is Nothing Then
  3.         If MsgBox("§R°£­«½Æªº[ID & PartNumber]", vbQuestion + vbYesNo, "²£«~ºÞ±±²M³æ") = vbYes Then           
  4.              Worksheets("²£«~ºÞ±±²M³æ").Activate
  5.             Stop                                            'µ{¦¡·|°±¤î «öF8¤@¨B¤@¨B°õ¦æ¤U¥h¬Ý¤u§@ªíªº±¡§Î
  6.             Rng(1).EntireRow.Select                  '¿ï¨ú­«½ÆªºID
  7.            MsgBox Rng(1).EntireRow.Address
  8.             Rng(1).EntireRow.Delete   '¥ýµù¸Ñ±¼¤£§R°£
  9.         End If
  10.     End If
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : ¬Ý§O¤H¤£¶¶²´¡A¬O¦Û¤v­×¾i¤£°÷¡C
ªð¦^¦Cªí ¤W¤@¥DÃD