excel的VBA – macros点击IE的下一页
我不知道如何点击此页面上的“下一个100”button:
http://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000898293&type=&dateb=&owner=exclude&count=100
具体这个部分:
<form> <table border="0" width="100%"> <tbody><tr> <td>Items 1 - 100 <a href="/cgi-bin/browse-edgar?action=getcompany&CIK=0000898293&type=&dateb=&owner=exclude&start=0&count=100&output=atom"><img src="/images/rss-feed-icon-14x14.png" alt="0000898293 Filings" border="0" align="top"> RSS Feed</a></td> <td style="text-align: right;"> <input type="button" value="Next 100" onclick="parent.location='/cgi-bin/browse-edgar?action=getcompany&CIK=0000898293&type=&dateb=&owner=exclude&start=100&count=100'"></td> </tr> </tbody></table> </form>
下面是我在Excel VBA中已经厌倦了,我没有一个强烈的理解,并知道如何点击一个button,如果我可以看到元素ID。
Sub dates()Dim IE As New InternetExplorer IE.Visible = True IE.navigate "http://www.sec.gov/cgi-bin/browse-edgar?CIK=JBL&owner=exclude&action=getcompany" Do DoEvents Loop Until IE.readyState = READYSTATE_COMPLETE Dim Doc As HTMLDocument Set Doc = IE.document Doc.getElementById("count").Value = 100 Doc.forms.Item(0).submit Dim objTag As Object For Each objTag In Doc.getElementsByTagName(strTagName) If InStr(objTag.outerHTML, "Next 100") > 0 Then objTag.Click objTag.FireEvent ("onclick") Exit For End If Next
这应该为你工作:
Sub dates() Dim IE As New InternetExplorer Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.Navigate "http://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000898293&type=&dateb=&owner=exclude&count=100" Do DoEvents Loop Until IE.ReadyState = READYSTATE_COMPLETE With IE.document Set elems = .getElementsByTagName("input") For Each e In elems If e.Type = "button" And e.Value = "Next 100" Then e.Click Exit For End If Next e End With End Sub
如果您使用以下链接:
http://www.sec.gov/cgi-bin/browse-edgar?CIK=JBL&owner=exclude&action=getcompany
你必须检查
If objCollection(i).Type = "button" And objCollection(i).Value = "Next 40" Then