Excel 股市資料抓取服務

提供Excel 股市資料抓取服務
可透過下列方式聯絡我
Email: iamaraymond@yahoo.com.tw
(FB請先加我好友再私訊,不然會跑到陌生訊息)

課程:
Excel VBA 金融資料抓取 | 打造股票研究系統 (學生數: 602,學員評價5顆星)
無痛起步-Excel VBA超入門實戰(學生數: 413,學員評價5顆星)


2018年8月17日 星期五

Excel VBA 下載CSV

Excel VBA有蠻多種下載CSV的方式
1.使用Workbooks.Open(網址)
2.使用QueryTable
3.使用XMLHTTP物件

以上一篇文章抓的三大法人買賣超日報為範例




1.workbook.open
2.QueryTable
3.XMLHTTP

簡單做個比較
1.Workbooks.Open
語法簡單,速度中(1.26秒)
但一個很大的缺點是下載了新的Excel
如果我們平常是將資料固定放在特定Excel檔,只是想更新數據
那麼我們就必須寫入切換活頁簿、使用完後刪掉CSV檔等語法
因此雖然下載的語法簡單,但後面有很多細節要處理

2.QueryTable
語法不難,如果忘記的話直接錄製一次巨集即可得到程式碼,再稍加修改
速度偏慢(2.4秒)
相比於workbook.open
使用QueryTable可將資料直接下載至當前的活頁簿
因此不須另外切換活頁簿

3.XMLHTTP
語法偏難,但速度最快
即使包含了資料整理也僅僅只要0.34秒
但須具備一些網路基礎知識,對於初學者較不易上手



8 則留言:

  1. 請教我試您的程式,出現myText = convertraw(.responseBody),沒有定義這個Function,或Sub,請指點!

    回覆刪除
  2. 哈囉~此錯誤可能是因為您尚未將convertraw的程式碼加進您的程式碼中

    回覆刪除
  3. convertraw程式碼在
    https://raymondchiendtrt.blogspot.com/2018/08/excel-vba.html

    回覆刪除
  4. 您好:
    想請問為什麼我在嘗試下載全產業的時候都會出現問題呢?
    例如把網址改成:"http://www.twse.com.tw/fund/T86?response=csv&date=20180817&selectType=ALL"
    都會出現錯誤,嘗試過其他寫法也碰到一樣的情況,望大神解惑><

    回覆刪除
    回覆
    1. 哈囉,請問你是使用哪一種方式,執行後出錯呢

      刪除
  5. 請問上櫃的三大法人買賣超該如何處理?感謝

    回覆刪除
  6. 您好,有緣拜讀到您的部落格文章,我在實作上遇到了一些問題,想要請教您,非常感謝。

    我是使用第3種方式,如果只是選單一產業都可正常抓取
    但如果是選"全部"(selectType=ALL),就會出現錯誤。

    完整網址:https://www.twse.com.tw/fund/T86?response=csv&date=20220906&selectType=ALL

    出現錯誤的訊息是
    執行階段錯誤 '1004':
    應用程式或物件定義上的錯誤

    卡在程式的這一行
    Cells(i, j) = Replace(Replace(Replace(myText2, """,", ""), Chr(13), ""), Chr(34), "")

    感謝您,祝順心

    回覆刪除
  7. 請問RC版主 用 XMLHTTP 抓取 富邦財務比率表格 會將資料同時放在同一儲存格不會換列,但用 QUERY 方法 同樣表格可以分到不同儲存格,請問這是問題出在哪?

    回覆刪除