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秒
但須具備一些網路基礎知識,對於初學者較不易上手
請教我試您的程式,出現myText = convertraw(.responseBody),沒有定義這個Function,或Sub,請指點!
回覆刪除哈囉~此錯誤可能是因為您尚未將convertraw的程式碼加進您的程式碼中
回覆刪除convertraw程式碼在
回覆刪除https://raymondchiendtrt.blogspot.com/2018/08/excel-vba.html
您好:
回覆刪除想請問為什麼我在嘗試下載全產業的時候都會出現問題呢?
例如把網址改成:"http://www.twse.com.tw/fund/T86?response=csv&date=20180817&selectType=ALL"
都會出現錯誤,嘗試過其他寫法也碰到一樣的情況,望大神解惑><
哈囉,請問你是使用哪一種方式,執行後出錯呢
刪除請問上櫃的三大法人買賣超該如何處理?感謝
回覆刪除您好,有緣拜讀到您的部落格文章,我在實作上遇到了一些問題,想要請教您,非常感謝。
回覆刪除我是使用第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), "")
感謝您,祝順心
請問RC版主 用 XMLHTTP 抓取 富邦財務比率表格 會將資料同時放在同一儲存格不會換列,但用 QUERY 方法 同樣表格可以分到不同儲存格,請問這是問題出在哪?
回覆刪除