2014-03-07 121 views
0

我有一個網頁有多種形式。每個提交的表格都打開一個新頁面。我試圖從這些網頁中獲取數據。使用下面的代碼,我可以打開頁面,但數據從表單頁面拉出,而不是在提交後出現的頁面。多個表單提交併從結果頁面解析數據

我看了這個解決方案,但它不適用於我的情況。

excel vba form submit and parse data from result

這裏是我的代碼;

Set formsw = IE.document.forms 
For Each form In formsw 
    For Each elem In form.elements 
     If elem.Value = "Show Summary (Html)" Then elem.Click 

      Do Until IE.ReadyState = 4: DoEvents: Loop 
      Do While IE.Busy: DoEvents: Loop 

      Sheet1.Activate 
      Sheet1.Cells.ClearContents 

      r = 0 
      For Each TRelement In IE.document.getElementsByTagName("TR") 
        Sheet1.Range("A1").Offset(r, 0).Value = TRelement.innerText 
        r = r + 1 
      Next 
     End If 
    Next 
Next 

Set form = Nothing 

這裏是源代碼的一部分;

<input class="newInputButton" type="button" name="btnSubmit" width="100%"  value="Show Summary (Html)" onclick="javascript:form1.action='/BEP/ShowApproved?w=0';  form1.target='_blank'; form1.submit();"> 
    <input class="newInputButton" type="button" name="btnSubmit" width="100%" value=""Show Details (Html)" onclick="javascript: form1.action='/BEP/ShowApproved?w=0';   form1.target='_blank'; form1.submit();"> 
    <input class="newInputButton" type="button" name="btnSubmit" width="100%"  value="Show Summary (Html)" onclick="javascript:form2.action='/BEP/ShowApproved?w=0';  form2.target='_blank'; form2.submit();"> 
    <input class="newInputButton" type="button" name="btnSubmit" width="100%" value=""Show Details (Html)" onclick="javascript: form2.action='/BEP/ShowApproved?w=0';   form2.target='_blank'; form2.submit();"> 

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

回答

1

這聽起來像你需要把IE重點放在新的網頁上。以下代碼計算所有打開的IE實例並檢索它們的URL和標題。如果新網頁的網址或標題中包含某些特徵詞,則可以在下面使用它們來讓宏控制新網頁。這個例子使用頁面標題,但你也可以使用url。

Set objShell = CreateObject("Shell.Application") 
IE_count = objShell.Windows.Count 
For x = 0 To (IE_count - 1) 
    On Error Resume Next ' sometimes more web pages are counted than are open 
    my_url = objShell.Windows(x).Document.Location 
    my_title = objShell.Windows(x).Document.Title 

    If my_title Like "Some characteristic words from your new web page" Then 'find the new web page 
     Set ie = objShell.Windows(x) 
     Exit For 
    Else 
    End If 
Next 
相關問題