- 帖子
- 13
- 主題
- 3
- 精華
- 0
- 積分
- 23
- 點名
- 0
- 作業系統
- Win 7
- 軟體版本
- Office 2002
- 閱讀權限
- 10
- 註冊時間
- 2012-12-25
- 最後登錄
- 2013-11-6
|
如何將下載的股市每日盤後行情(製作成各股的歷史股價資料)
煩請各位高手專家解惑,謝謝!
請問有辦法將下列程碼的加以修改,把每日各股的盤後行情所得的資料轉換成(各股的歷史資料)。- Sub 下載網站資料()
- Dim Startmonth As String, Startday As String, xDate As Date, Msg As Boolean, Sh As Worksheet
- On Error GoTo EX '程式執行中有錯誤時跳到 EX: 繼續執行程式
- xDate = Date '當日
- Set Sh = ActiveSheet '指定工作表:此程式在任何模組中皆可用
- EX:
- If Err.Number <> 0 Or Msg = True Then '當日(尚未有資料:錯誤) 或 休市
- [color=Red]xDate = xDate - 1 (應改為xDate = Date - 1)[/color] 假如休市超過1天以上(2,3,4,5,6,春節9天),又如何修改呢?
- Err.Clear
- Msg = False
- End If
- Sh.UsedRange.Clear '清理工作表已使用的範圍
- Startday = Format(xDate, "YYYYMMDD")
- Startmonth = Format(xDate, "YYYYMM")
- '下載網站的網址
- With Sh.QueryTables.Add(Connection:="URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report" & Startmonth & "/A112" & Startday & "ALLBUT0999_1.php?select2=ALLBUT0999&chk_date=" & Format(xDate, "E/MM/DD"), Destination:=Range("A3"))
- .RefreshStyle = xlOverwriteCells '抓取網頁的第10個表格作為匯入資料
- .WebTables = "10"
- .Refresh BackgroundQuery:=False '當日(尚未有資料:錯誤)
- If Application.CountA(Sh.QueryTables(1).ResultRange) = 0 Then '休市 沒有資料
- Msg = True
- GoTo EX
- End If
- End With
- With Sh.UsedRange
- .Font.Size = 12
- .EntireColumn.AutoFit
- End With
- End Sub
複製代碼 因為我已有下載各股歷史股價的資料程式和資料,且依代碼分類成多個活頁簿例如:
workbook(1.xls)有worksheet(1102)、worksheet(1103).....等。1活頁簿中有代碼,第一個數字有[1]的多個工作表。
workbook(2.xls)有worksheet(2102)、worksheet(2103).....等。2活頁簿中有代碼,第一個數字有[2]的多個工作表。
......
......
workbook(9.xls)有worksheet(9102)、worksheet(9103).....等。9活頁簿中有代碼,第一個數字有[9]的多個工作表。
所以想請問有沒有更簡便快速的方法。謝謝各位專家前輩的抽空指導。 |
|