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

«ç¼Ë¤ÀÃþ«á¶K¤W¦U¦Ûªºsheet

«ç¼Ë¤ÀÃþ«á¶K¤W¦U¦Ûªºsheet

½Ð°Ý«ç¼Ë±Nexcelªº¤ëµ²³æ¸ê®Æ®Ú¾Ú¥kÃ䪺job number ¥Î VBA ¶K¦b¦U¦Ûªºsheet ¤W¡HÁ [¨£ªþ¥ó]
pls.¤p§Ì¥u¯à¥Î¿ý»sªº¥\¯à°µ, ¤£¹Lrun VBA®É¸g±`·|³B²z¤£¤F, ¦³¨S¦³Â²³æªº³B²z¤èªk=.=

±N¸ê®Æ¤ÀJOB.rar (11.36 KB)

±N¸ê®Æ¤ÀJOB

HERO

¥»©«³Ì«á¥Ñ GBKEE ©ó 2013-4-13 15:55 ½s¿è

¦^´_ 1# Hero2013
¸Õ¸Õ¬Ý
  1. Sub ¤ÀJob1()
  2.     Dim DataBase As Range
  3.     With Sheets("¤¤»È¤ä²¼")
  4.         Set DataBase = .Range("a5").CurrentRegion
  5.         'CurrentRegion ÄÝ©Ê  ¶Ç¦^ Range ª«¥ó¡A¸Óª«¥ó¥Nªí¥Ø«eªº°Ï°ì¡C¥Ø«e°Ï°ì¬O«ü¥H¥ô·NªÅ¥Õ¦C¤ÎªÅ¥ÕÄ檺²Õ¦X¬°Ãä¬Éªº½d³ò¡C°ßŪ
  6.         .Cells(1, .Columns.Count) = DataBase.Cells(1, DataBase.Columns.Count)  '¤u§@ªí³Ì«á¤@Äæ=DataBase³Ì«á¤@Ä檺¼Ð¦W(job number )
  7.         DataBase.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Cells(1, .Columns.Count), Unique:=True
  8.         'AdvancedFilter(¶i¶¥¿z¿ï) ¤èªk  °ò©ó·Ç«h½d³ò±q¸ê®Æ²M³æ¤¤¿z¿ï©Î½Æ»s¸ê®Æ¡C¦pªGªì©l¿ï©w¬°³æ­ÓÀx¦s®æ¡A«h¨Ï¥ÎÀx¦s®æ¥Ø«eªº°Ï°ìx¬°Variant¡C
  9.         i = 2
  10.         .AutoFilterMode = False
  11.         'AutoFilterMode ÄÝ©Ê ©w¦pªG¥Ø«e¦b¤u§@ªí¤WÅã¥Ü¦³ [¦Û°Ê¿z¿ï] ¤U©Ô½b¸¹¡A«h¦¹Äݩʬ° True¡C¸ÓÄÝ©Ê»P FilterMode Äݩʤ¬¬Û¿W¥ß¡CŪ/¼g Boolean¡C
  12.         '³Æµù ¦pªG¥Ø«eÅã¥Ü [¦Û°Ê¿z¿ï] ¤U©Ô½b¸¹¡A¦¹ÄݩʶǦ^ True¡C¥i±N¸ÓÄݩʳ]©w¬° False¡A¥H²¾°£¸Ó½b¸¹¡A¦ýµLªk±N¨ä³]©w¬° True¡C¥i¥Î AutoFilter ¤èªk¹ï¸ê®Æ²M³æ¶i¦æ¿z¿ï¨ÃÅã¥Ü¸Ó¤U©Ô½b¸¹¡C

  13.         On Error GoTo Err_Sheet
  14.         'On Error ³¯­z¦¡     ±Ò°Ê¤@­Ó¿ù»~³B²z±`¦¡¡A¥B«ü©w¦¹±`¦¡¦b¤@­Óµ{§Çùتº¦ì¸m¡C¤]¥i¥Î¨Ó°±¤î¤@­Ó¿ù»~³B²z±`¦¡¡C

  15.         Do While .Cells(i, .Columns.Count) <> ""   '°õ¦æ¦^°éªº±ø¥ó:¤¤»È¤ä²¼³Ì«á¤@Ä檺i¦C <>""
  16.             DataBase.AutoFilter Field:=DataBase.Columns.Count, Criteria1:=.Cells(i, .Columns.Count)
  17.             'AutoFilter ¤èªk ¨Ï¥Î [¦Û°Ê¿z¿ï] ¿z¿ï¥X¤@­Ó²M³æ¡C¬° Variant¡C
  18.             With Sheets(.Cells(i, .Columns.Count).Value).Range("a5")
  19.                 .CurrentRegion = ""
  20.                 DataBase.Copy .Cells
  21.             End With
  22.             i = i + 1
  23.         Loop
  24.         .AutoFilterMode = False
  25.         .Columns(.Columns.Count) = ""   '²M°£¶i¶¥¿z¿ï©ó³Ì«á¤@Ä檺¸ê®Æ
  26.     End With
  27. Exit Sub
  28. Err_Sheet:
  29.     If Err = 9 Then
  30.       With Sheets("¤¤»È¤ä²¼")
  31.         Sheets.Add , Sheets(Sheets.Count)               '´¡¤J·sªº ¤u§@ªí
  32.        ' .Copy , Sheets(Sheets.Count)                   '½Æ»s "¤¤»È¤ä²¼" ¤u§@ªí(®æ¦¡¦p ¤¤»È¤ä²¼)
  33.         ActiveSheet.Name = .Cells(i, .Columns.Count)    '¨î©w·s¤u§@ªíªº¦WºÙ
  34.         ' ActiveSheet.AutoFilterMode = False            '½Æ»s "¤¤»È¤ä²¼" »ÝÅã¥Ü©Ò¦³¸ê®Æ
  35.       End With
  36.       Resume
  37.       'Resume ³¯­z¦¡   ¦b¿ù»~³B²z±`¦¡µ²§ô«á , «ì´_­ì¦³ªº°õ¦æ
  38.     Else
  39.         MsgBox "µ{¦¡¿ù»~ ¿ù»~½X" & vbLf & Err
  40.     End If
  41. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

GBKEEªO¥D, ¥i¥H¹B§@¤F, ¯uªºÁÂÁ§A¡C
§xÂZ¤p§Ìªº°ÝÃD, ¤@¤U¤l¸Ñ¨M¤F^^
HERO

TOP

        ÀR«ä¦Û¦b : ºw¤ô¦¨ªe¡C²É¦Ì¦¨ÅÚ¡A¤Å»´¤vÆF¡A¤Å¥Hµ½¤p¦Ó¤£¬°¡C
ªð¦^¦Cªí ¤W¤@¥DÃD