[問題] vba 網頁資料 excelWB 錯誤

作者: waiter337 (給開司一罐蘇格登)   2016-12-24 09:02:18
假設說,我用vba近入了某網頁
網頁上面的資料需要輸入日期查尋
我將日期都填入後
找出type="submit" 開始搜索資料
接著本該是資料會先列出來
然後
excelWB 17,0
excelWB 12,2
會將網頁上的所有資料給copy出來
(一般網頁教學大致上是這樣)
但很奇怪的是
.
順序卻變成
在資料還在搜尋沒完成時
就全選拷貝了
.
最終貼上工作表的資料只有一開始還沒搜尋的時候
.
.
而我做了一個測試
我在 MyBrowser.ExecWB 17, 0 'Select All 這行
放了一個中斷點暫停一下
.
然後繼續跑
資料就正常的出現搜尋後的資料了
求高手指點
.
.
.
.
(以上登入IE帳密跟設定網頁部份恕刪)
Set MyBrowser = New InternetExplorer
MyBrowser.Silent = True
MyBrowser.navigate MyURL
MyBrowser.Visible = True
Do
Loop Until MyBrowser.readyState = READYSTATE_COMPLETE
Set HTMLDoc = MyBrowser.document
HTMLDoc.all.Email.Value = 帳號 'Enter your email id here
HTMLDoc.all.passwd.Value = 密碼 'Enter your password here
For Each MyHTML_Element In HTMLDoc.getElementsByTagName("input")
If MyHTML_Element.Type = "submit" Then
MyHTML_Element.Click: Exit For
End If
Next
Do While MyBrowser.readyState = 4 '等待網頁開啟
DoEvents
Loop
MyBrowser.navigate MyURL
MyBrowser.Visible = True
Do
Loop Until MyBrowser.readyState = READYSTATE_COMPLETE
Set HTMLDoc = MyBrowser.document
Set HTMLDoc = MyBrowser.document
HTMLDoc.all.txtsdate.Value = 開始日期
HTMLDoc.all.txtedate.Value = 結束日期
For Each MyHTML_Element In HTMLDoc.getElementsByTagName("input")
If MyHTML_Element.Type = "submit" Then
MyHTML_Element.Click: Exit For
End If
Next
Do While MyBrowser.readyState = 4 '等待網頁開啟
DoEvents
Loop
'
作者: soyoso (我是耀宗)   2016-12-24 10:10:00
mybrowser.busy、application.wait…等試試
作者: waiter337 (給開司一罐蘇格登)   2016-12-24 10:23:00
你太強了 200p附上
作者: soyoso (我是耀宗)   2016-12-24 21:06:00
alert的方面,版本之前有一篇#1NTynmw0看看是否可協助到
作者: Linkey (Linkey)   2016-12-25 11:13:00
application.wait(now()+timeserial(hh:mm:ss))加在sendkeys前面,應該只需要送出Enter 不需要Tab

Links booklink

Contact Us: admin [ a t ] ucptt.com