看板 Visual_Basic 關於我們 聯絡資訊
※ [本文轉錄自 Office 看板 #1Rfpgif3 ] 作者: Ibrahimovic (伊布) 看板: Office 標題: [算表] 為何抓網路多筆資料會常常失敗 時間: Sun Sep 23 15:03:06 2018 軟體: Excel 版本: 2016 時常用VBA在抓網路資料,一直都有個疑惑 如果只抓少數幾筆資料,例如3筆,通常VBA寫完,F5按下去,都會成功 可是如果是要抓很多筆,例如100筆,通常就會在下載階段時掛掉,出現沒有反應 而在這下載失敗裡的幾次例子裡 重新在VBA裡按F8逐條執行,就會成功!? 針對這種問題,做過的補救方式有 1.加迴圈直到網頁完全載入 Do While IE.readyState <> 4 Or IE.Busy DoEvents Loop 2.接上面迴圈,再加等待時間 Application.wait now + timevalue("00:00:05") 以上加了,改善成功率不到5成,時好時壞 記憶體或CPU狀態也有檢查 試過的網站來源不只1個 但是,感覺都沒有辦法抓到問題重點 所以想請教諸位大德開釋 為什麼按F5,一次完整跑,會失敗 按F8,逐條執行,卻會成功 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.175.126.106 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1537686188.A.A43.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: Ibrahimovic (1.175.126.106), 09/23/2018 15:03:20
napyang: 建議你去girhub上找一位神人做的VBA-Web來parse, 09/24 10:07
napyang: 不要透過IE應該就沒這問題。 09/24 10:07
napyang: https://github.com/VBA-tools/VBA-Web 09/24 10:08
peakhour: 可在F8逐條執行成功,表示你程式連線過快,必須放慢,de 09/24 16:40
peakhour: lay長一點 09/24 16:40
感謝2位指教,我再試試 感恩 ※ 編輯: Ibrahimovic (1.175.126.106), 09/25/2018 00:58:05
waiter337: 我印象有個寫法好像要等下載完成才能執行下一個步驟 10/30 09:32
waiter337: 該不會是這個巴 10/30 09:33
waiter337: Do While MyBrowser.busy Or _ 10/30 09:33
waiter337: MyBrowser.readyState <> 4 10/30 09:33
waiter337: DoEvents 10/30 09:34
waiter337: Loop 10/30 09:34
waiter337: do 10/30 09:34
waiter337: Loop Until MyBrowser.readyState = READYSTATE_COMPL 10/30 09:34
waiter337: ETE 10/30 09:35