2013-03-08 73 views
1

這裏是我的代碼,遺憾的是到公司的問題我不能發佈真實的URL,它的工作原理,但不是我想要的方式,檢查我下面的問題:Excel VBA中的表單提交併解析結果數據

Dim doc As HTMLDocument 
Dim IE As InternetExplorer 
Dim TDelements As IHTMLElementCollection 
Dim TDelement As HTMLTableCell 
Dim r As Long 

Sub ficfinder() 
Set IE = CreateObject("InternetExplorer.Application") 
    With IE 
     .Visible = True 
     .navigate URL:="...INPUT"<---this is my search form, but i have to redact due to co policy 
    Do 'Until .readyState = 4 
    DoEvents 
    Loop Until IE.readyState = READYSTATE_COMPLETE 
    'pick field to fill out 
    Set mytextfield1 = .document.all.Item("WESTAC") 
    'set value to put in 
    mytextfield1.Value = "5416869160" 
    'click the submit button 
    IE.document.all.Item("Submit").Click 
    Do 'Until .readyState = 4 
    DoEvents 
    Loop Until IE.readyState = READYSTATE_COMPLETE 
    End With 
'I think i'm missing something here 

    Set doc = IE.document 
    Dim sdd As String 
    Set TDelements = doc.getElementsByTagName("td") 
    r = 0 
    For Each TDelement In TDelements 
     If TDelement.Align = "right" Then 
      Sheet2.Range("A1").Offset(r, 0).Value = TDelement.innerText 
      r = r + 1 
     End If 
    Next 
End Sub 

所以這個工作,並將數據放入我的電子表格,但它所拉的數據來自搜索表單,而不是提交後出現的頁面。我如何讓IE.document出現的新頁面?

任何幫助表示感謝,謝謝!

+1

如果您在「Do」(在提交表單之後)放置了一個休息區,您是否可以在IE中看到頁面刷新?如果你在VB編輯器中點擊「繼續」,你會得到預期的結果嗎? – 2013-03-08 18:25:26

+0

是的,這使得數據正確!那麼我需要等待之前呢? – 2013-03-08 18:39:54

+0

等待可能會這樣做。 – 2013-03-08 18:46:12

回答

0

我加

Do While IE.Busy: DoEvents: Loop 

剛過提交和它完美的作品。感謝Tim Williams的幫助!