2014-03-07 69 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 
相关问题