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

VBA¦p¦ó±N¤£¦P¸ê®Æªº°Ï°ì§ì¥X¤ÀÃþ?

VBA¦p¦ó±N¤£¦P¸ê®Æªº°Ï°ì§ì¥X¤ÀÃþ?

½Ð°Ý¦U¦ìª©¤W¤j®v¡A¤p§Ìªì¾ÇVBA
«ä¦Ò¤@­ÓÀÉ®×°ÝÃD¤w¸g³\¤[¡A¤]ª¦¤F«Ü¦h¤å³¹
¹Á¸Õ¥Î°j°é§ì¥X¸ê®Æ...¥¢±Ñ..
¹Á¸Õ¥Î°}¦C§ì¥X¸ê®Æ....¤]¥¢±Ñ...  ·Q¤F¦n´X¤Ñ§Ë¤£¥X¨Ó
·Q½Ð°Ýª©¤W¤j¤H­Ì   

¦pªG§Ú·Q­n§ì¨ú¤@¥÷¸ê®Æ  ²Ä¤@­Ósheet ¬OÁ`ªí(·|ÀHºô­¶§ó·s§ì¸ê®Æ)
¦p¦ó¨Ï¥ÎVBA ±N¥L¤ÀÃþÅܦ¨ sheet2 . 3 .4 ªº¤ÀÃþ©O?  
§Ú±N§Ú­nªº¸ê®Æ°Ï°ì Åܦ¨¬õ¦âªº¦r¼Ë  ¥i¥H½Ð¤H«ü¾É¶Ü?  

¥t¥~³Ì­«­nªº´N¬O  ²Ä¤@­ÓÁ`ªíªº¸ê®Æ¦C¼Æ ·|ÀHµÛ¤ë¥÷¤£¦P  ¦Ó¦³¼Æ¶q¤£¦P
¥t¥~  ¬O¤£¬O¯à¦b  §ó²Ó¤À¦¨ sheet 4  ¸ò 5 ªººØÃþ©O??

¥t¥~§Ú¦bVBA½s¿è¾¹¨ºÃ䦳¯d¤U§Úªº·Qªk.....¦U¦ì½Ð¥Î¤OÃ@¥´...§Ú¨ì©³¬O­þ¸ÌªºÆ[©À¤£¹ï??

«ôÁ¦U¦ì¤j®v~

´ú¸ÕÀÉ®×.rar (49.85 KB)

´ú¸ÕÀÉ®×.rar (49.85 KB)

¦^´_ 1# handsometrowa
¸ê®Æ°Ï°ì Åܦ¨¬õ¦âªº¦r¼Ë ,¿ý»s¥¨¶°¸Õ¸Õ¬Ý
  1. Option Explicit
  2. Dim Rng As Range, AR()
  3. Sub Main()
  4.     AR = Array("¨ì´Á¤ë¥÷", "¼i¬ù»ù", "¶R½æÅv", "¦¨¥æ¶q", "¥¼¨R¾P«´¬ù¶q")
  5.     With Sheets("¿ï¾ÜÅvÁ`ªí")
  6.         .[L4:M4] = Array("¦¨¥æ¶q", "¥¼¨R¾P«´¬ù¶q")         '"*¦¨¥æ¶q" ,"*¥¼¨R¾P'¸ê®Æ®wÄæ"*" ¶i¶¥¿z¿ï¦³·|¦³¿ù»~
  7.         Set Rng = .Range("B4:Q" & .[B4].End(xlDown).Row)   '¸ê®Æ®w
  8.         ¿z¿ïµ{¦¡ "¤ÀÃþ¤@"
  9.         ¿z¿ïµ{¦¡ "½æÅv"
  10.         ¿z¿ïµ{¦¡ "¶RÅv"
  11.         .Activate
  12.     End With
  13. End Sub
  14. Private Sub ¿z¿ïµ{¦¡(Sh As String)                  'SH°Ñ¼Æ¬°¦r¦ê«¬ºA :¤u§@ªí¦WºÙ
  15.     Dim T As String
  16.     With Sheets(Sh)
  17.         .Cells.Clear                                'Àx¦s®æ:²M°£
  18.         .[L1].Value = AR(0)                         '¶i¶¥¿z¿ï: CriteriaRange,·Ç«hÄæ¦ì¦WºÙ("¨ì´Á¤ë¥÷")
  19.         .[A1:E1].Value = AR                         '¶i¶¥¿z¿ï: CopyToRange,½Æ»s¨ìÀx¦s®æªºÄæ¦ì¦WºÙ
  20.         
  21.         If Sh = "½æÅv" Or Sh = "¶RÅv" Then
  22.             .[L1].Value = AR(2)                     '¶i¶¥¿z¿ï: CriteriaRange,·Ç«hÄæ¦ì¦WºÙ("¶R½æÅv")
  23.             .[L2] = IIf(Sh = "¶RÅv", "Call", "Put") '¶i¶¥¿z¿ï:·Ç«hÄæ¦ì ³]¥ß±ø¥ó
  24.         End If
  25.         Rng.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.[L1:L2], CopyToRange:=.[A1:E1], Unique:=True
  26.         .[L1:L2] = ""                                'Unique:=True ¶È¿z¿ï°ß¤@ªº°O¿ý
  27.          If Sh <> "½æÅv" And Sh <> "¶RÅv" Then
  28.             .Rows(2).Delete                          '¸ê®Æ®w²Ä2¦C¬° (¶g§O) ¤£»Ý­n§R±¼
  29.         Else
  30.             ¤ë¥÷«´¬ù¿z¿ïµ{¦¡ Sh
  31.         End If
  32.     End With
  33. End Sub
  34. Private Sub ¤ë¥÷«´¬ù¿z¿ïµ{¦¡(Sh As String)
  35.     Dim R As Range
  36.     On Error GoTo ER:                               'µ{¦¡¿ù»~³B¸Ì:¤ë¥÷«´¬ù¶RÅvªº¤u§@ªí,¦p¤£¦s¦b·|¦³¿ù»~.
  37.     With Sheets(Sh)
  38.         .Range("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Cells(1, .Columns.Count), Unique:=True
  39.         '¿z¿ï [¨ì´Á¤ë¥÷]¦b¤u§@ªí³Ì¥kºÝªºÄæ¦ì
  40.         For Each R In .Range(.Cells(2, .Columns.Count), .Cells(2, .Columns.Count).End(xlDown))  '³Ì¥kºÝªºÄæ¦ìªº[¨ì´Á¤ë¥÷]
  41.             .Range("A1").AutoFilter Field:=1, Criteria1:=R     '¦Û°Ê¿z¿ï: AÄæ ·Ç«h= [¨ì´Á¤ë¥÷]
  42.             .Range("A:E").Copy Sheets(R & Sh).[A1]             '¤£²Å¦X·Ç«hªº¸ê®Æ·|ÁôÂñ¼
  43.         Next
  44.     End With
  45.     Exit Sub                                                   'Â÷¶}³oµ{§Ç
  46. ER:
  47.     If Err.Number = 9 Then                                      '¤ë¥÷«´¬ù¶RÅvªº¤u§@ªí
  48.         Sheets.Add Sheets(Sheets.Count)                         '·s¼W¤u§@ªí
  49.         ActiveSheet.Name = R & Sh                               '¤u§@ªí:©R¦W
  50.         Resume                                                  '¦^¨ìµ{¦¡¿ù»~ÂI
  51.     End If
  52.     MsgBox Err.Description & Err.Number                         '§iª¾:¤£¬O¤u§@ªí¤£¦s¦b·|¦³¿ù»~.
  53. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

²`²`ªº·PÁª©¥D¡A»¡¯uªº§Ú¬Ý¨ìªº®É­Ô©ü¤F....
§Ú¸£¤¤ªº·Qªk«ç»ò¼g¥X¨Ó³o»ò½ÆÂø
§Úªº¥\¤O¯uªºÂ÷³o­Ó¶¥¬q¦n»·¦n»·...

¥i§_½Ðª©¥D¸ò§Ú¸ÑÄÀ¤@¤U ¤j­P¤Wªº¬yµ{  
±z¬O«ç»òºc«ä  ¤S«ç»ò³B²z³o¨Ç°ÝÃDªº¥ý¨Ó«á¨ìªº@@?

TOP

¦^´_ 3# handsometrowa
¤£­n³à®ð,§Ú¦³³o¯à¤O¬°§A¸Ñµª,¬O¶O¤F«Ü¦h®É¶¡©Ò¿i½m¥X¨Óªº.
¦³°ÝÃDÅwªï´£°Ý,¦h¬Ý,¦h½m²ß½d¨Ò,·|¶i¨Bªº

Sub Main()  
«Ø¥ß¸ê®Æ®w½d³ò   

Sub ¿z¿ïµ{¦¡(Sh As String)  
¨Ì¶Ç°eªº°Ñ¼ÆSh(¤u§@ªí¦WºÙ)«ü©w¨ì¤u§@ªíª«¥ó: With Sheets(Sh)
­×­q¶i¶¥¿z¿ï, CriteriaRange[¿z¿ï·Ç«h],Äæ¦ì¦WºÙ( "¨ì´Á¤ë¥÷","¶R½æÅv" ),
                                     [¿z¿ï·Ç«h],Äæ¦ì ³]¥ß±ø¥ó .[L2] = IIf(Sh = "¶RÅv", "Call", "Put")

Sub ¤ë¥÷«´¬ù¿z¿ïµ{¦¡(Sh As String)
¨Ì·ÓSh="½æÅv"©Î¬OSh="¶RÅv",·s¼W¦P¤@¤ë¥÷ªº«´¬ùªº¤u§@ªí
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 4# GBKEE


    ¦A¦¸«ôÁÂ!!  

±z¯uªº¬OÀ°¤F«Ü¤jªº¦£¡A®³¨ì³o¥÷µ{¦¡½Xªº®É­Ô¡A¤º¤ß¬O¤S·P°Ê¡A¤S²Û·\..

§Æ±æ¦³´Â¤@¤é¦­ÂI§¹¦¨§ÚªºªF¦è  ¥i¥HÀ°¦£§ó¦h¤H

·PÁª©¥D~

TOP

Dear  ª©¤j
§Ú³Ìªñ¦b©é©Rªº²Î­p¸ê®Æªü   §Ú¹J¨ìÃøÃD¤F ¥i¤£¥i¥H½Ð°Ý±z(¦]¬°§ÚÁÙ¤£°÷Åv­­ µoµu°T)
±z±Ð¾É§Úªºµ{¦¡½X·í¤¤

Sub Main()
    AR = Array("¨ì´Á¤ë¥÷", "¼i¬ù»ù", "¶R½æÅv", "¦¨¥æ¶q", "¥¼¨R¾P«´¬ù¶q")§ÚÀ´
    With Sheets("¿ï¾ÜÅvÁ`ªí")§ÚÀ´
        .[L4:M4] = Array("¦¨¥æ¶q", "¥¼¨R¾P«´¬ù¶q")    ¦³ÂI¤£À´¡A³o¥y¸Üªº·N«ä¬O§â°}¦CÅܼƤ¤ªº³o¨â­ÓÅܼƽá­Èµ¹ [L4:M4] ? ¤£¬OÀ³¸Ó¬Û¤Ï??     '"*¦¨¥æ¶q" ,"*¥¼¨R¾P'¸ê®Æ®wÄæ"*" ¶i¶¥¿z¿ï¦³·|¦³¿ù»~
        Set Rng = .Range("B4" & .[B4].End(xlDown).Row)   '¸ê®Æ®w ³o­Ó¸ê®Æ®w½d³ò©w¸q§ÚÀ´
        ¿z¿ïµ{¦¡ "¤ÀÃþ¤@"  ¨º³o­Ó  ¿z¿ïµ{¦¡ ¥H¤U³o¤T­Ó ¤ÀÃþ¤@ ½æÅv ¶RÅv ?? ³o¬O¤°»ò«ü¥O   call?©I¥s? §Ú¬Ý¥L¤£¬Oª`¸Ñ À³¸Ó¨Æ·|°õ¦æªºµ{¦¡§a?
        ¿z¿ïµ{¦¡ "½æÅv"
        ¿z¿ïµ{¦¡ "¶RÅv"

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2013-6-5 17:21 ½s¿è

¦^´_ 6# handsometrowa
*¦¨¥æ¶q        *¥¼¨R¾P ->  ¸ê®Æ®wÄæ¦ì¦WºÙ¤£¥i¥H¦³ * ,·|³y¦¨¶i¶¥¿z¿ï¤£¯à°õ¦æ·|¦³¿ù»~.
.[L4:M4] = Array("¦¨¥æ¶q", "¥¼¨R¾P«´¬ù¶q")  
µ¥¦P
  1. .[L4] ="¦¨¥æ¶q"
  2. .[M4]= "¥¼¨R¾P«´¬ù¶q")
½Æ»s¥N½X
¿z¿ïµ{¦¡ "¤ÀÃþ¤@"  '©I¥s  ¿z¿ïµ{¦¡ ³oµ{§Ç ¨Ã¥B¶Ç°e°Ñ¼Æ«¬ºA¬°"¦r¦ê"      
¿z¿ïµ{¦¡ "½æÅv"              
¿z¿ïµ{¦¡ "¶RÅv"


Private Sub ¿z¿ïµ{¦¡(Sh As String)
              'µ{¦¡±µ¦¬ªº(Sh)°Ñ¼Æ(String)«¬ºA¬°"¦r¦ê"
  With Sheets(Sh)  ->   Sheets("¤ÀÃþ¤@")
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

·PÁÂGBKEE ~§ÚÀ´¤F ¦ý¬O¥i§_¦A´£°Ý¤@­Ó°ÝÃD


³o­ÓArray ("¦¨¥æ¶q", "¥¼¨R¾P«´¬ù¶q")   ¸ò¤@¶}©l³]©wªº¨º­ÓAR = Array("¨ì´Á¤ë¥÷", "¼i¬ù»ù", "¶R½æÅv", "¦¨¥æ¶q", "¥¼¨R¾P«´¬ù¶q") ¦³ÃöÁp¶Ü? §Ú·Q§Ú¬O³o­Ó¦a¤è¥X°ÝÃD ¨Ì·Ó±zªº·Qªk¡A
.[L4] ="¦¨¥æ¶q"
.[M4]= "¥¼¨R¾P«´¬ù¶q") ¥u¬O§âRange("L4") ½á­ÈÅܦ¨ ¤å¦rÀÉ ¦Ó¤w
©Ò¥H¸ò¤@¶}©l³¯­z°}¦CÅܼƨº¤­­Óªº¦WºÙ¦³Ãö«Y¶Ü?


.[L4:M4] = Array("¦¨¥æ¶q", "¥¼¨R¾P«´¬ù¶q")  
µ¥¦P
.[L4] ="¦¨¥æ¶q"
.[M4]= "¥¼¨R¾P«´¬ù¶q")

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2013-6-7 15:56 ½s¿è

¦^´_ 8# handsometrowa
¸ò¤@¶}©l³¯­z°}¦CÅܼƨº¤­­Óªº¦WºÙ¨S¦³Ãö«Yªº
*¦¨¥æ¶q        *¥¼¨R¾P ->  ¸ê®Æ®wÄæ¦ì¦WºÙ¤£¥i¥H¦³ * ,¥h±¼*ªº§@¥Î¦Ó¤w.
1#»¡:§Ú·Q­n§ì¨ú¤@¥÷¸ê®Æ  ²Ä¤@­Ósheet ¬OÁ`ªí(·|ÀHºô­¶§ó·s§ì¸ê®Æ)
¦p¦ó¨Ï¥ÎVBA ±N¥L¤ÀÃþÅܦ¨ sheet2 . 3 .4 ªº¤ÀÃþ©O?  

§Ú¥Î¤F [¶i¶¥¿z¿ï]ªº¤èªk
  1. AdvancedFilter ¤èªk [¶i¶¥¿z¿ï]
  2. ½Ð°Ñ¾\®M¥Î¦Ü½d¨Ò¯S©w°ò©ó·Ç«h½d³ò±q¸ê®Æ²M³æ¤¤¿z¿ï©Î½Æ»s¸ê®Æ¡C¦pªGªì©l¿ï©w¬°³æ­ÓÀx¦s®æ¡A«h¨Ï¥ÎÀx¦s®æ¥Ø«eªº°Ï°ìx¬°Variant¡C
  3. expression.AdvancedFilter(Action, CriteriaRange, CopyToRange, Unique)
  4. expression      ¥²¿ï¡C¸Ó¹Bºâ¦¡·|¶Ç¦^ [®M¥Î©ó] ²M³æ¤¤ªº¨ä¤¤¤@­Óª«¥ó¡C
  5. Action     ¥²¿ïªº XlFilterAction ¸ê®ÆÃþ«¬¡C
  6. XlFilterAction ¥i¥H¬O³o¨Ç XlFilterAction ±`¼Æ¤§¤@¡CxlFilterCopy ,xlFilterInPlace.
  7. CriteriaRange     ¿ï¾Ü©Êªº Variant¡C·Ç«h½d³ò¡C¦pªG¬Ù²¤¦¹¤Þ¼Æ«hµL·Ç«h¡C
  8. CopyToRange     ¿ï¾Ü©Êªº Variant¡C¦pªG Action ¬° xlFilterCopy¡A¦¹¤Þ¼Æ«ü©w³Q½Æ»s¦Cªº¥Ø¼Ð½d³ò¡C§_«h©¿²¤¦¹¤Þ¼Æ¡C
  9. Unique     ¿ï¾Ü©Êªº Variant¡C­Y¬° True¡A«h¶È¿z¿ï°ß¤@ªº°O¿ý¡F­Y¬° False¡A«h¿z¿ï¥X©Ò¦³²Å¦X·Ç«hªº°O¿ý¡C¹w³]­È¬° False¡C
½Æ»s¥N½X
[¿ï¾ÜÅvÁ`ªí] ¬°¸ê®Æ®w¥H¤U¬°¥¦ªºÄæ¦ì¦WºÙ
«´¬ù        ¨ì´Á¤ë¥÷        ¼i¬ù»ù        ¶R½æÅv        ¶}½L»ù        ³Ì°ª»ù        ³Ì§C»ù        ³Ì«á        µ²ºâ»ù        º¦¶^»ù        º¦¶^%        *¦¨¥æ¶q        *¥¼¨R¾P        ³Ì«á³Ì¨Î¶R»ù        ³Ì«á³Ì¨Î½æ»ù        ¾ú¥v³Ì°ª»ù        ¾ú¥v³Ì§C»ù

[¿ï¾ÜÅvÁ`ªí]¤¤«ü©w­n¿z¿ïªºÄæ¦ì,¥Î AR = Array("¨ì´Á¤ë¥÷", "¼i¬ù»ù", "¶R½æÅv", "¦¨¥æ¶q", "¥¼¨R¾P«´¬ù¶q") ,¤@¦¸ªº½Æ»s¨ì
sheet2 . 3 .4 ¤¤,«K©óAdvancedFilterªº¿z¿ï.
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 9# GBKEE


    Dear GBKEE
·PÁ±z¤§«eµ¹ªºµ{¦¡½X¡A°µ¥X¨ÓªºªF¦è²Å¦X§Ú­nªºªF¦è¡A¦ý¬O«áÄòÁÙ¥i¯à­n²K¥[¦Û°Ê­pºâ

§Ú¤µ¤Ñ§â¾ã­Óµ{¦¡¤À¶}¬Ý¤F¤@¤U¡A¦b¦Û°Ê¿z¿ïªº¦a¤è §Ú¯uªº§¹¥þ¤£¤F¸Ñ¡A§Ú¤µ¤Ñ¥hEXCEL ¬Ý¤F»¡©ú

¦b©w¸q¤@­Ó½d³ò¦WºÙ¤]¦n¡A¿ï¨ú¤@­Ó½d³ò¤]¦n¡A¦b¨Ï¥Î¶i¶¥¿z¿ïªº®É­Ô¡Aµ¹¤©·Ç«h¨Ã¥B½Æ»s¨ì¬Y­Ó¦a¤èªº®É­Ô..

¥L³£¥u¯à¦b¦P¤@­Ó¤u§@ªí¤W­±¨Ï¥Î¿z¿ï«áªº·Ç«h±ø¥ó½Æ»s¨Ã¥B¶K¤W¡A¤£¯à¸ó¤u§@ªí¶K¤Wªü@@"

¥i¬O§Ú¤µ¤Ñ¥Î¤F±ø¦C¦¡°»¿ù¶]µ{¦¡¡A¥i¬O±z¤@¶}©l¸ê®Æ®w©w¸q§¹¤§«á¡A´N¥i¥H§â¿z¿ï¹L«áªº¸ê®Æ¶K¨ì"¶RÅv"©Î¬O"½æÅv" ªº¤u§@ªí¸Ì­±

µM«á¦A¶i¦æ¶i¤@¨Bªº¿z¿ï¡AµM«á¦A¶K¤W¨ì·s¼W¥[ªº¦WºÙ¤u§@ªí¤W

³o¯uªº¦Ê«ä¤£±o¨ä¸Ñªü!!  EXCEL¤£¯à¶i¶¥¿z¿ï«á¶K¨ì§Oªº¤u§@ªí¡A¥i¬OVBA¥i¥H?

PS:¨ä¹ê±zÀ°§Ú³]­pªºµ{¦¡  "¶RÅv"¸ò"½æÅv" ¥i¥H»Ý­n¥i¥H¤£­n¡A"¤ÀÃþ¤@"¨º­Ó¬O·íªì¸ÑÄÀ¥Î¨ä¹ê¤£¥Î¨º­Ó¤u§@ªí¤F¡Aµù°Oµ{¦¡½X¤§«á¥i¥HÄ~Äò¹B¦æ¡A·PÁÂ^^

TOP

        ÀR«ä¦Û¦b : ¦n¨Æ­n´£±o°_¡A¬O«D­n©ñ±o¤U¡A¦¨´N§O¤H§Y¬O¦¨´N¦Û¤v¡C
ªð¦^¦Cªí ¤W¤@¥DÃD