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

[µo°Ý] ¦³¿ìªk±N¨C¤é¸ê®Æ·|¦¨¤@¥÷¹À

¦^´_ 10# pupai


    ÁÂÁÂGBKEEª©¥Dªº¤À¨É
¨â­Ó°ÝÃD½Ð±Ð
1.DÄæ¤å¦rÂà¼Æ¦r
2.¥t¥~¤U¸ü§¹«áªº¸ê®Æ¡A¦Û°ÊÀx¦s¨ì¥t¤@­ÓSHEET¡]¥HªÑ²¼©R¦W¡^
ÁÂÁ±z

TOP

¦^´_ 11# pupai
³o³£¥i¥H¥Î¥¨¶°¿ý»s¸Õ¸Õ¬Ý,½m²ß¤~·|¶i¨Bªº.
************************************
1.·s¼W¤@¤u§@ªí,±N¤§©R¦W¬°ªÑ²¼¥N¸¹.         
2±N¤U¸üªº¸ê®Æ,½Æ»s¨ì,¦¹·s¤u§@ªí
*************************************
1.­ìµ{¦¡¤¤¦³·s¼W¤u§@ªí,¥i±N¤§©R¦W¬°ªÑ²¼¥N¸¹.
2,±N¤U¸üªº¸ê®Æ,½Æ»s¨ì,¦¹·s¼W¤u§@ªí
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 12# GBKEE


    GBKEEª©¥D
§Ú¦³¥Î¥¨¶°§¹¦¨(¦pªþ¥ó)
1.DÄæ¤å¦rÂà¼Æ¦r
2.¤U¸ü§¹«áªº¸ê®Æ¡A¦Û°ÊÀx¦s¨ì¥t¤@­ÓSHEET¡]¥HªÑ²¼©R¦W¡^
¦ý§Ú¼gª¾¹DVBA­n¦p¦ó§¹¦¨¤W­±ªº°Ê§@
¥t¥~§Ú¦³­Ó·s°ÝÃD
¦pªG§Ú¦b¤@­Ó¥N½X¤À­¶¤¤(A1Äæ¿é¤JªÑ²¼¥N½X1101,1102,1103,1104,1108,1109,1110,1201,1203¡Kµ¥µ¥)
VBA¥i¥H²£¥Í¤@­Ó°j°é¤@¦¸À°§Ú¶]§¹³o¤@¨ÇªÑ²¼¥N½Xªº¾ú¦~¸ê®Æ¡A¨Ã¦A¦Û°ÊÀx¦s¦b¥t¤@­ÓSHEET¡]¥HªÑ²¼©R¦W¡^¡H
ÁÂÁÂ!!

­ÓªÑ¤é¥»¯q¤ñ¡B´Þ§Q²v¤ÎªÑ»ù²b­È¤ñ.rar (18.04 KB)

TOP

¦^´_ 13# pupai
§A»¡:§Ú¦³¥Î¥¨¶°§¹¦¨(¦pªþ¥ó),¦³¶Ü?­þ¦³§¹¦¨.



  1. Option Explicit
  2. Sub GetData()
  3.     Dim DataSheet As Worksheet, Sh As Worksheet, Msg As Boolean
  4.     Dim EndDate As Date, StartDate As Date, AR, xR As Long
  5.     Dim Symbol As Variant, Qur As String
  6.     Set DataSheet = Sheets("¥N½X")
  7.     With DataSheet
  8.         StartDate = .[C1]
  9.         EndDate = .[C2]
  10.         '¥»¸ê®Æ¦Û¥Á°ê94¦~09¤ë01¤é¶}©l´£¨Ñ *** °£¿ù  ***
  11.         If StartDate < #9/1/2005# Or EndDate < #9/1/2005# Or StartDate > EndDate Or EndDate > Date Then
  12.             MsgBox "¼Æ¾Ú¦³»~" & IIf(StartDate < #9/1/2005#, vbLf & "StartDate :¤é´Á ¤p©ó 94¦~09¤ë01¤é  ", "") & _
  13.             IIf(EndDate < #9/1/2005#, vbLf & "EndDate :¤é´Á ¤p©ó 94¦~09¤ë01¤é  ", "") & _
  14.             IIf(StartDate > EndDate, vbLf & "StartDate > EndDate", "") & _
  15.             IIf(EndDate > Date, vbLf & " EndDate >" & Date, "")
  16.             Exit Sub
  17.         End If
  18.     '*********************************************
  19.         Application.DisplayAlerts = False
  20.         For Each Sh In Sheets
  21.             If Sh.Name <> DataSheet.Name Then Sh.Delete    '§R°£¤£¥²­nªº¤u§@
  22.         Next
  23.         For Each Symbol In .Range("A1", .Range("A" & .Rows.Count).End(xlUp))  'ªÑ²¼ªº°j°é
  24.             Msg = False
  25.             StartDate = .[C1]                           '°j°é»Ý­«·s¦^¨ì­ì¥»ªº StartDate¤é´Á
  26.             Set Sh = Sheets.Add(, Sheets(Sheets.Count)) '·s¼Wªº¤u§@ªí¦ì©ó¬¡­¶Ã¯³Ì«á­±(Sheets.Count)
  27.             DataSheet.Activate
  28.             
  29.             Do While DateSerial(Year(StartDate), Month(StartDate), 1) <= EndDate
  30.                 Qur = "http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php?myear=" & Format(StartDate, "yyyy") & "&mmon=" & Format(StartDate, "m") & "&STK_NO=" & Symbol
  31.                 With Sh       '·s¼Wªº¤u§@ªí
  32.                     If .QueryTables.Count = 0 Then                      'Web¬d¸ß
  33.                         .QueryTables.Add "URL;" & Qur, .[M1]            'Web¬d¸ß¸ê®Æ¦bMÄæ
  34.                     Else
  35.                         .QueryTables(1).Connection = "URL;" & Qur
  36.                         Msg = True
  37.                     End If
  38.                     With .QueryTables(1)
  39.                         .WebFormatting = xlWebFormattingNone
  40.                         .WebSelectionType = xlSpecifiedTables
  41.                         .WebDisableDateRecognition = True
  42.                         .WebTables = "8"
  43.                         .Refresh BackgroundQuery:=False
  44.                         If Application.CountA(.ResultRange) = 0 Then Msg = False
  45.                         If Msg Then
  46.                             AR = .ResultRange.Offset(2)
  47.                         Else
  48.                             AR = .ResultRange
  49.                         End If
  50.                         xR = Application.CountA(.Parent.[d:d]) + 1                         '.Parent :Web¬d¸ßªº¤÷¼h
  51.                         .Parent.Cells(xR, "A").Resize(UBound(AR, 1), UBound(AR, 2)) = AR   '¸ê®Æ½Æ»s¨ì ·s¼W¤u§@ªíªºAÄæ
  52.                     End With
  53.                 End With
  54.                 StartDate = DateAdd("m", 1, StartDate)   '¤é´Á + 1­Ó¤ë
  55.             Loop
  56.             With Sh
  57.                 .Name = Symbol                                 '¥HªÑ²¼©R¦W
  58.                 .QueryTables(1).ResultRange = ""               '²M°£Web¬d¸ßªº¸ê®Æ
  59.                  .Names(.QueryTables(1).Name).Delete           'Web¬d¸ßªº¦WºÙ
  60.             End With
  61.         Next
  62.     End With
  63.     Application.DisplayAlerts = True
  64. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 14# GBKEE


    G¤j±z¦n
¦A¦¸·PÁ±zªº¼ö¤ßªº«ü¾É
§Ú¬ã¨s¬Ý¬Ý
ÁÂÁÂ...

TOP

  1. µ{¦¡§Ú¤j·§»¡©ú¤@¤U

  2. Option Explicit
  3. Sub GetData()
  4.     Dim DataSheet As Worksheet, Sh As Worksheet, Msg As Boolean               '©w¸qÅܼÆ
  5.     Dim EndDate As Date, StartDate As Date, i As Integer, AR, xR As Long    '©w¸qÅܼÆ
  6.     Dim Symbol As String, Qur As String                                                            '©w¸qÅܼÆ
  7.     Set DataSheet = Sheets("Sheet1")                                                                   '³]©w¤u§@ªí¦WºÙ
  8.     With DataSheet
  9.         StartDate = .[b1]                                                                                          '±NB1Äæ¦ì­ÈŪ¨ìÅܼÆStartDate¤¤
  10.         EndDate = .[b2]                                                                                           '±NB2Äæ¦ì­ÈŪ¨ìÅܼÆEndDate¤¤
  11.         Symbol = .[b3]                                                                                             '±NB3Äæ¦ì­ÈŪ¨ìÅܼÆSymbol¤¤
  12.         .Range("D1").CurrentRegion = ""                                                               '³]©wD1Äæ¦ì­È
  13.     End With
  14.     '¥»¸ê®Æ¦Û¥Á°ê94¦~09¤ë01¤é¶}©l´£¨Ñ *** °£¿ù  ***                                '¥H¤U¥H94/09/01¬°¬É­­,§PŪ¿é¤J­È¬O§_¦³¿ù
  15.     If StartDate < #9/1/2005# Or EndDate < #9/1/2005# Or Len(Symbol) <= 3 Or StartDate > EndDate Or EndDate > Date Then
  16.         MsgBox "¼Æ¾Ú¦³»~" & IIf(StartDate < #9/1/2005#, vbLf & "StartDate :¤é´Á ¤p©ó 94¦~09¤ë01¤é  ", "") & _
  17.         IIf(EndDate < #9/1/2005#, vbLf & "EndDate :¤é´Á ¤p©ó 94¦~09¤ë01¤é  ", "") & _
  18.         IIf(Len(Symbol) <= 3, vbLf & "Symbol : ªÑ²¼¥N¸¹ ", "") & _
  19.         IIf(StartDate > EndDate, vbLf & "StartDate > EndDate", "") & _
  20.         IIf(EndDate > Date, vbLf & " EndDate >" & Date, "")
  21.         Exit Sub
  22.     End If
  23.     '*********************************************
  24.     Set Sh = Sheets.Add(Sheets(1))
  25.     DataSheet.Activate
  26.     Do While DateSerial(Year(StartDate), Month(StartDate), 1) <= EndDate   ' DO¨ìLOOP¤¤ªºµ{¦¡¬°¥H¿é¤J­È¥h§ì¨úºô­¶ªº¸ê®Æ
  27.         Qur = "http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php?myear=" & Format(StartDate, "yyyy") & "&mmon=" & Format(StartDate, "m") & "&STK_NO=" & Symbol
  28.         With Sh
  29.             If .QueryTables.Count = 0 Then
  30.                 .QueryTables.Add "URL;" & Qur, .[A1]
  31.             Else
  32.                 .QueryTables(1).Connection = "URL;" & Qur
  33.                 Msg = True
  34.             End If
  35.            With .QueryTables(1)
  36.                 .WebFormatting = xlWebFormattingNone
  37.                 .WebSelectionType = xlSpecifiedTables
  38.                 .WebDisableDateRecognition = True
  39.                 .WebTables = "8"
  40.                  .Refresh BackgroundQuery:=False
  41.                  If Application.CountA(.ResultRange) = 0 Then Msg = False
  42.                  If Msg Then
  43.                     AR = .ResultRange.Offset(2)
  44.                  Else
  45.                     AR = .ResultRange
  46.                  End If
  47.                  With DataSheet
  48.                     xR = Application.CountA(.[d:d]) + 1
  49.                     .Cells(xR, "D").Resize(UBound(AR, 1), UBound(AR, 2)) = AR
  50.                  End With
  51.            End With
  52.            End With
  53.         StartDate = DateAdd("m", 1, StartDate)                            '³o¦æ´N¬O¯à§ì¸ó¤ëªº­pºâ¦¡,§ì§¹²Ä¤@­Ó¤ë«á,ÅܼÆStartDateªº¤ë¥÷+1
  54.     Loop
  55.     Application.DisplayAlerts = False
  56.     Sh.Delete
  57.     Application.DisplayAlerts = True
  58. End Sub
½Æ»s¥N½X
¤À¨ÉG¤jªºµ{¦¡½X

TOP

¦^´_ 16# pupai
§AÁÙ¬O¨S·d²M·¡CurrentRegion¬O¤°»ò,¶·¦h¬Ývbaªº»¡©ú.
  1.   .Range("D1").CurrentRegion = ""                                                               '³]©wD1Äæ¦ì­È
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 17# GBKEE


    ¨þ¨þ....­W¯º §Ú¦A§V¤O.   ¨ü±Ð¤F

TOP

¦p¦óÁקK·í¬d¸ß¤é´Á ¤p©ó ¸ê®Æ¤é´Á®É µ{¦¡¤¤Â_

±z¦n
¥N½X1773ªº¾ú¥v¸ê®Æ±q2009/2/27¶}©l¦³¸ê®Æ
°²³]§Ú¦bStartDate¥´¤J2006/1/1
·íµ{¦¡°õ¦æ¨ì1773´N·|¤¤Â_
½Ð°Ý­n¦p¦ó­×§ï
ÁÂÁÂ!!

test.rar (18.45 KB)

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2013-10-23 16:18 ½s¿è

¦^´_ 19# pupai
  1. Option Explicit
  2. Sub GetData()
  3.     Dim DataSheet As Worksheet, Sh As Worksheet
  4.     Dim EndDate As Date, StartDate As Date, AR, xR As Long
  5.     Dim Symbol As Variant, Qur As String
  6.     Set DataSheet = Sheets("¥N½X")
  7.     With DataSheet
  8.         StartDate = .[C1]
  9.         EndDate = .[C2]
  10.         '¥»¸ê®Æ¦Û¥Á°ê94¦~09¤ë01¤é¶}©l´£¨Ñ *** °£¿ù  ***
  11.         If StartDate < #9/1/2005# Or EndDate < #9/1/2005# Or StartDate > EndDate Or EndDate > Date Then
  12.             MsgBox "¼Æ¾Ú¦³»~" & IIf(StartDate < #9/1/2005#, vbLf & "StartDate :¤é´Á ¤p©ó 94¦~09¤ë01¤é  ", "") & _
  13.             IIf(EndDate < #9/1/2005#, vbLf & "EndDate :¤é´Á ¤p©ó 94¦~09¤ë01¤é  ", "") & _
  14.             IIf(StartDate > EndDate, vbLf & "StartDate > EndDate", "") & _
  15.             IIf(EndDate > Date, vbLf & " EndDate >" & Date, "")
  16.             Exit Sub
  17.         End If
  18.     '*********************************************
  19.         Application.DisplayAlerts = False
  20.         For Each Sh In Sheets
  21.             If Sh.Name <> DataSheet.Name Then Sh.Delete    '§R°£¤£¥²­nªº¤u§@
  22.         Next
  23.         For Each Symbol In .Range("A2", .Range("A" & .Rows.Count).End(xlUp))  'ªÑ²¼ªº°j°é
  24.             StartDate = .[C1]                           '°j°é»Ý­«·s¦^¨ì­ì¥»ªº StartDate¤é´Á
  25.             Set Sh = Sheets.Add(, Sheets(Sheets.Count)) '·s¼Wªº¤u§@ªí¦ì©ó¬¡­¶Ã¯³Ì«á­±(Sheets.Count)
  26.             DataSheet.Activate
  27.             Do While DateSerial(Year(StartDate), Month(StartDate), 1) <= EndDate
  28.                 Qur = "http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php?myear=" & Format(StartDate, "yyyy") & "&mmon=" & Format(StartDate, "m") & "&STK_NO=" & Symbol
  29.                 With Sh       '·s¼Wªº¤u§@ªí
  30.                     If .QueryTables.Count = 0 Then                      'Web¬d¸ß
  31.                         .QueryTables.Add "URL;" & Qur, .[M1]            'Web¬d¸ß¸ê®Æ¦bMÄæ
  32.                     Else
  33.                         .QueryTables(1).Connection = "URL;" & Qur
  34.                     End If
  35.                     With .QueryTables(1)
  36.                         .WebFormatting = xlWebFormattingNone
  37.                         .WebSelectionType = xlSpecifiedTables
  38.                         .WebDisableDateRecognition = True
  39.                         .WebTables = "7,8"
  40.                         .Refresh BackgroundQuery:=False
  41.                          If Application.CountA(.ResultRange) > 1 Then
  42.                             AR = .ResultRange.Offset(4)
  43.                             If Application.CountA(.Parent.[a:a]) = 0 Then AR = .ResultRange.Offset(3)
  44.                             xR = Application.CountA(.Parent.[a:a]) + 1                         '.Parent :Web¬d¸ßªº¤÷¼h
  45.                             .Parent.Cells(xR, "A").Resize(UBound(AR, 1), UBound(AR, 2)) = AR   '¸ê®Æ½Æ»s¨ì ·s¼W¤u§@ªíªºAÄæ
  46.                         End If
  47.                     End With
  48.                     
  49.                 End With

  50.                 StartDate = DateAdd("m", 1, StartDate)   '¤é´Á + 1­Ó¤ë
  51.             Loop
  52.             With Sh
  53.                 .Name = Symbol                                 '¥HªÑ²¼©R¦W
  54.                 '------------------------
  55.                 .Activate
  56.                 .Range("E3").Select
  57.                 ActiveCell.FormulaR1C1 = _
  58.                 "=IF(ISERROR(DATEVALUE(1911+MID(RC[-4],1,FIND(""/"",RC[-4])-1) & MID(RC[-4],FIND(""/"",RC[-4]),LEN(RC[-4])))),"""",DATEVALUE(1911+MID(RC[-4],1,FIND(""/"",RC[-4])-1) & MID(RC[-4],FIND(""/"",RC[-4]),LEN(RC[-4]))))"
  59.                 .Range("E3").Select
  60.                 Selection.Copy
  61.                 .Columns("E:E").Select
  62.                 ActiveSheet.Paste
  63.                 .Columns("E:E").Select
  64.                 Selection.NumberFormatLocal = "[$-404]e/m/d;@"
  65.                 '------------------------
  66.                 .QueryTables(1).ResultRange = ""               '²M°£Web¬d¸ßªº¸ê®Æ
  67.                  .Names(.QueryTables(1).Name).Delete           'Web¬d¸ßªº¦WºÙ
  68.             End With
  69.         Next
  70.     End With
  71.     Application.DisplayAlerts = True
  72. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : ¦³Ä@©ñ¦b¤ß¸Ì¡A¨S¦³¨­Åé¤O¦æ¡A¥¿¦p¯Ñ¥Ð¤£¼½ºØ¡A¬Ò¬OªÅ¹L¦]½t¡C
ªð¦^¦Cªí ¤W¤@¥DÃD