- 帖子
- 83
- 主題
- 17
- 精華
- 0
- 積分
- 105
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- XP
- 閱讀權限
- 20
- 註冊時間
- 2010-12-28
- 最後登錄
- 2018-8-8
|
[發問] 請教MSXML2.XMLHTTP和InternetExplorer的異同
各位好!小弟在這裡看到各位高手的CODE,終於略懂VBA的皮毛,提升日常工作的效率,謝謝大家。但
我對VBA很多地方仍然沒能掌握,希望大家能指教指教。
如果我的程序需要到網站找資料時,我會使用這兩組:- XMLHTTP= CreateObject("MSXML2.XMLHTTP.6.0")
- XMLHTTP.Open "GET", URL
- 或
- objIE = CreateObject("InternetExplorer.Application")
- objIE.Navigate URL
複製代碼 依我理解,這兩組代碼是讀取該PAGE的HTML碼
但我對它們有很多疑問:
1) MSXML2.XMLHTTP.6.0 可以用POST 或GET ,前者需要我SEND DATA到網站作查詢,但
http://stock.finance.sina.com.cn/hkstock/finance/02317.html#a4
如果我想改變右面選擇欄的報表類型,是否可以用MSXML2.XMLHTTP.6.0 的POST & SEND的方法?但我沒有研究成功,只能用objIE = CreateObject("InternetExplorer.Application")去操作
2) CreateObject("MSXML2.XMLHTTP.6.0")是否可以完全取代CreateObject("InternetExplorer.Application")?有時候在LOOPING,IE會停止不動,有點麻煩。
3) 在使用CreateObject("InternetExplorer.Application")時,當我填寫了資料再按.Submit後,我會有一段代碼- do until instr(.document.body.innerhtml,"XXX")>0
- sleep 50
- doevents
- loop
複製代碼 來判斷該頁面是否已完成讀取(我曾用readyState<>4,但好像失敗),如果當時網速不佳,excel會顯示沒有.document.body.innerhtml的OBJECT(類似的字眼),我需要RERUN代碼才能繼續。即使我用:do until not .document.body.innerhtml is nothing t也會出現ERROR....
4) 我想用這兩組代碼讀取這網站的報價資料,但兩個都不成功,看了讀回來的HTML CODE,股價資料是空的,但我直接看這個網站時,它的HTML CODE是包括報價資料。處理這些網站時有沒有特別的處理技巧?
http://www.etnet.com.hk/www/tc/stocks/realtime/quote.php?code=2317 |
|