ªð¦^¦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)

  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("A:A").Select
  57.                 Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
  58.                 TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
  59.                 Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
  60.                 :=Array(1, 10), TrailingMinusNumbers:=True

  61.    
  62.                 .Range("f1").Select
  63.                 Application.CutCopyMode = False
  64.                 ActiveSheet.Paste
  65.             
  66.                .Range("F19") = Symbol
  67.                
  68.                .Range("G19:L19").Select
  69.                
  70.                 '------------------------
  71.                 .QueryTables(1).ResultRange = ""               '²M°£Web¬d¸ßªº¸ê®Æ
  72.                  .Names(.QueryTables(1).Name).Delete           'Web¬d¸ßªº¦WºÙ
  73.             End With
  74.         Next
  75.     End With
  76.     Application.DisplayAlerts = True
  77. End Sub
½Æ»s¥N½X
¥ý¸ò¦U¦ì³ø§iÁÙ¬O¥HG¤jªºª©¥»¤ñ¸û¦n
³o¬O§Ú¥ý«e­×§ïªºµ{¦¡ ¤£¦n¥Î
­ì¦]
  .Range("A:A").Select
                Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
                TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
                Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
                :=Array(1, 10), TrailingMinusNumbers:=True
³o¤@¬q¦pªG¹J¨ì¨S¦³¸ê®Æ µ{¦¡·|°±Â\

¥t¥~³o¤@¬q
.Range("f1").Select
                Application.CutCopyMode = False
                ActiveSheet.Paste
ÁöµM¥i¥H½Æ»s®æ¦¡ ¦ý¬O°}¦C¤½¦¡¨Sªk±Ò°Ê

¥H¤W¸ò¦U¦ì¥æ¬y
¦A¦¸·PÁÂG¤jªº¥Î¤ß ÁÂÁÂ

TOP

¦^´_ 24# GBKEE


    ¥i¥H¤F
§Ú¥ý§l¦¬¤@¤U
ÁÂÁÂ!!

TOP

¦^´_ 23# pupai
À³¸Ó¬O¦b³oÄ~Äòµo°Ýªº

ªþÀɸոլݹï§_
text.rar (16.57 KB)
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

­n¦p¦óÅýWeb¤U¸üªº¸ê®Æ§e²{¡A¥B¦P®É¤S¥i¥Hªþ±a¦³Sheet1ªºª©­±

½Ð°Ý
¥Ø«eµ{¦¡±o¨ìªºµ²ªG ¥i¥HÅý¨C­ÓWeb¤U¸üªº¤À­¶¦³Sheet1ªºª©­±
¦ý¬O ±qWeb¤U¸üªº¸ê®Æ«o¨S¦³¥X²{
½Ð°Ý­n¦p¦óÅý¨C¤@¦¸Web¤U¸üªº¸ê®Æ§e²{¡A¥B¦P®É¤S¥i¥Hªþ±a¦³Sheet1¬Û¦Pªºª©­±
ÁÂÁÂ!!

test.rar (34.26 KB)

test1.rar (29.1 KB)

TOP

¦^´_ 20# GBKEE


    ½Ð°ÝG¤j
§Ú¥[¤W¥¨¶°«á
µ²ªG¬O§Ú­nªºª©­±¨S¿ù
¦ý§Ú±qWeb¬d¸ßªº¸ê®Æ«o¨S¦³¥X²{
½Ð«ü¾É!!   ÁÂÁÂ!!

test.rar (34.26 KB)

TOP

¦^´_ 20# GBKEE


    ¦³³ÒG¤j
  ·P®¦!!
PS:­ì¨Ó§Ú¥i¥H±µµÛ°Ý,ÁÂÁ´£ÂI

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

¦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

¦^´_ 17# GBKEE


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

TOP

        ÀR«ä¦Û¦b : °µ¦n¨Æ¤£¯à¤Ö§Ú¤@¤H¡A°µÃa¨Æ¤£¯à¦h§Ú¤@¤H¡C
ªð¦^¦Cªí ¤W¤@¥DÃD