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

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

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

²`²`ªº·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

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

        ÀR«ä¦Û¦b : ¤H¨ÆªºÁ}Ãø»PµZ¿i¡A´N¬O¤@ºØ¦ÒÅç¡C
ªð¦^¦Cªí ¤W¤@¥DÃD