字體:小 中 大 | |
|
|
2009/03/07 22:28:30瀏覽19507|回應13|推薦1 | |
台北期貨交易所 (Taifex) 網站有提供盤後資訊、三大法人進出的資訊讓大家查詢, 於是常有人想將這些資訊直接匯到 Excel 工作表裡去做統計或處理。我就舉台北期交所網站英文版的 Future - Daily Market Report (期貨-每日交易行情)查詢為例, 來介紹抓這些資料的方法。我把做法寫成一個副程式--GetFutureDailyRPT(): Sub GetFutureDailyRPT(rptWkbStr As String, rptShtStr As String, rptRngStr As String, YYYY As String, MM As String, DD As String, Contract As String) 'YYYY 是欲抓資料的年份, 例如: "2009", "2007" Workbooks(rptWkbStr).Worksheets(rptShtStr).Range("A:Z").ClearContents '先清除整張工作表 With Workbooks(rptWkbStr).Worksheets(rptShtStr).QueryTables.Add(Connection:="URL;http://www.taifex.com.tw/eng/eng3/eng3_1.asp?syear=" _ .Name = YYYY & "-" & MM & "_" & DD & "-" & Contract End Sub 接下來舉例說明它的用法, 首先我們把上面 GetFutureDailyRPT() 和底下Test()的程式碼都貼入某活頁簿裡的模組裡。執行 Test() 程式, 會將2009年3月5日的CPF、GBF、GDF交易行情分別存入 C:\Book2.xls 的 sheet1、sheet2、sheet3 (假設此檔案裡面已有這三張工作表): Sub Test() Application.Workbooks.Open "C:\Book2.xls" '開檔 Call GetFutureDailyRPT("Book2.xls", "sheet1", "A1", "2009", "3", "5", "CPF") '查詢 2009年3月5日的交易資料 Application.Workbooks("Book2.xls").Close SaveChanges:=True '存檔並且關檔 期貨的合約種類的 CPF、GBF、GDF......等等還有哪些? 代表什麼意思? 可以去台北期交所網站去使用 "每日交易行情表查詢" 功能就會知道。 除了上面示範的以外, 台北期交所網站上還有一些其他的查詢做法也類似, 例如我想要從中文版網頁抓 "選擇權" 的每日交易行情資料, 只需把 GetFutureDailyRPT() 副程式複製一份, 改名為 GetOptionDailyRPT() 把裡面的 with 這一行, 改成底下這樣就好了: With Workbooks(rptWkbStr).Worksheets(rptShtStr).QueryTables.Add(Connection:="URL;http://www.taifex.com.tw/chinese/3/3_2_2.asp?DATA_DATE_Y=" _ 我要 "富邦金" 選擇權 (AJO ) 2009年3月4日的行情表, 就這樣寫: Call GetOptionDailyRPT("Book2.xls", "sheet1", "A1", "2009", "3", "4", "AJ") 您看出差異了嗎? 不同的查詢, Connection:= 後面那一串就會不一樣。我怎麼知道哪個查詢該怎麼寫? 懂 ASP 設計的人一定都知道, 答案是 "看網頁", 如果您有興趣想知道方法, 請看我的(下) 篇。 |
|
( 興趣嗜好|電腦3C ) |