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

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

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

±z¦n
§Ú§Æ±æ¥i¥H§â¨C¤éªº¸ê®Æ·J¾ã¦¨¤@¥÷
½Ð¤j®aÀ°¹À«ü¾É
ÁÂÁÂ!!
  1. Sub GetData()

  2.     Dim DataSheet As Worksheet
  3.     Dim EndDate As Date
  4.     Dim StartDate As Date
  5.     Dim Symbol As String
  6.     Dim qurl As String
  7.     Dim nQuery As Name
  8.    
  9.     Application.ScreenUpdating = False
  10.     Application.DisplayAlerts = False
  11.     Application.Calculation = xlCalculationManual
  12.    
  13.     Set DataSheet = ActiveSheet
  14.   
  15.         StartDate = DataSheet.Range("B1").Value
  16.         EndDate = DataSheet.Range("B2").Value
  17.         Symbol = DataSheet.Range("B3").Value
  18.         Range("C7").CurrentRegion.ClearContents
  19.         
  20.         qurl = "http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php?" & Symbol
  21.         qurl = qurl & "&a=" & Month(StartDate) - 1 & "&b=" & Day(StartDate) & _
  22.             "&c=" & Year(StartDate) & "&d=" & Month(EndDate) - 1 & "&e=" & _
  23.             Day(EndDate) & "&f=" & Year(EndDate) & "&g=" & Range("E3") & "&q=q&y=0&z=" & _
  24.             Symbol & "&x=.csv"
  25.                   
  26. QueryQuote:
  27.             With ActiveSheet.QueryTables.Add(Connection:="URL;" & qurl, Destination:=DataSheet.Range("C7"))
  28.                  .AdjustColumnWidth = False
  29.                 .BackgroundQuery = True
  30.                 .TablesOnlyFromHTML = False
  31.                 .Refresh BackgroundQuery:=False
  32.                 .SaveData = True
  33.                
  34.             End With
  35.             
  36.             Range("C7").CurrentRegion.TextToColumns Destination:=Range("C7"), DataType:=xlDelimited, _
  37.                 TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
  38.                 Semicolon:=False, Comma:=True, Space:=False, other:=False
  39.             
  40.             Range(Range("C7"), Range("C7").End(xlDown)).NumberFormat = "yyyy/mm/dd"
  41.             Range(Range("D7"), Range("G7").End(xlDown)).NumberFormat = "0.00"

  42. End Sub
½Æ»s¥N½X

test.rar (30.19 KB)

¦^´_ 2# GBKEE


    G¤jÁÙ¬O¤£¦æ
  1. Sub GetData()

  2.     Dim DataSheet As Worksheet
  3.     Dim EndDate As Date
  4.     Dim StartDate As Date
  5.     Dim Symbol As String
  6.     Dim qurl As String
  7.     Dim nQuery As Name
  8.    
  9.     Application.ScreenUpdating = False
  10.     Application.DisplayAlerts = False
  11.     Application.Calculation = xlCalculationManual
  12.    
  13.     Set DataSheet = ActiveSheet
  14.   
  15.         StartDate = DataSheet.Range("B1").Value
  16.         EndDate = DataSheet.Range("B2").Value
  17.         Symbol = DataSheet.Range("B3").Value
  18.         Range("C7").CurrentRegion.ClearContents
  19.         
  20.         qurl = qurl & "&a=" & Month(StartDate) - 1 & "&b=" & Day(StartDate) & _
  21.             "&c=" & Year(StartDate) & "&d=" & Month(EndDate) - 1 & "&e=" & _
  22.             Day(EndDate) & "&f=" & Year(EndDate) & "&g=" & Range("E3") & "&q=q&y=0&z=" & _
  23.             Symbol & "&x=.csv"
  24.             '*** ¤W­±ªººô§}qurl ¬°¦ó­n a= b= c= d= e= ³o¨Ç  ******
  25.              qurl = "http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php?myear=2013&mmon=9&STK_NO=2371"   
  26.                   
  27. QueryQuote:
  28.             With ActiveSheet.QueryTables.Add(Connection:="URL;" & qurl, Destination:=DataSheet.Range("C7"))
  29.                  .AdjustColumnWidth = False
  30.                 .BackgroundQuery = True
  31.                 .TablesOnlyFromHTML = False
  32.                 .Refresh BackgroundQuery:=False
  33.                 .SaveData = True
  34.                
  35.             End With
  36.             
  37.             Range("C7").CurrentRegion.TextToColumns Destination:=Range("C7"), DataType:=xlDelimited, _
  38.                 TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
  39.                 Semicolon:=False, Comma:=True, Space:=False, other:=False
  40.             
  41.             Range(Range("C7"), Range("C7").End(xlDown)).NumberFormat = "yyyy/mm/dd"
  42.             Range(Range("D7"), Range("G7").End(xlDown)).NumberFormat = "0.00"

  43. End Sub
½Æ»s¥N½X

¥¼©R¦W.JPG (185.66 KB)

¥¼©R¦W.JPG

TOP

¦^´_ 4# GBKEE


    ¤£À´
¥i§_¸Ô²Ó»¡©ú
ÁÂÁÂ!!

TOP

¦^´_ 4# GBKEE

G¤j
    ¨º½Ð°Ý¦³¿ìªk§âhttp://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.phpªº¸ê®Æ
¥ÎVBªº¤è¦¡§@¦¨¥i¥H¬d¸ßªÑ²¼¥N½X¥B¦³³sÄò®É¶¡ªº¤@¥÷¸ê®Æ(¤ñ¤è:2009/01/01¨ì2013/09/18 )
ÁÂÁÂ

TOP

¦^´_ 7# GBKEE


½Ð±Ð G¤j
®Ú¾Ú¤W­±°õ¦æ«ástartdate»Penddate¦n¹³¦³°ÝÃD
¶]¤£¥X¨Ó
µ²ªG¦pªþ¥ó
ÁÂÁÂ!!

¥¼©R¦W.JPG (190.29 KB)

¥¼©R¦W.JPG

TOP

¦^´_ 9# GBKEE


    ¥i¥H¤F~~·P®¦!!

TOP

¦^´_ 10# pupai


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

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

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

        ÀR«ä¦Û¦b : ­n¥Î¤ß¡A¤£­n¾Þ¤ß¡B·Ð¤ß¡C
ªð¦^¦Cªí ¤W¤@¥DÃD