通过VBA填写Web表单

时间:2015-03-17 17:36:57

标签: html excel vba excel-vba webpage

简介:我首先想说的是,当涉及到" HTML"时,我一点都不舒服。我已经完成了如何完成下述任务的精疲力竭的网络搜索。 (例如Retrieving data from the web using vbahttps://www.youtube.com/watch?v=kdD2bb4DU6chttps://www.youtube.com/watch?v=GswfT0Mrr5M

问题:总结想填写网站表格(约10 ^ 3次),提交查询并获得每个结果。为了测试它并保持简单,我正在测试它的一个值。到目前为止,我设法组建的VBA代码基于其他人所做的事情。它打开一个带有所需URL的新IE窗口,但它没有使用" test"填充所需的字段。许可#(11)和后缀(R)。

Dim HTMLDoc As HTMLDocument
Dim MyBrowser As InternetExplorer

Sub Test()

Dim MyHTML_Element As IHTMLElement
Dim HTMLDoc As HTMLDocument
Dim MyURL As String
On Error GoTo Err_Clear
MyURL = "http://www.dwr.state.co.us/wellpermitsearch/"
''open new explorer
Set MyBrowser = New InternetExplorer
MyBrowser.Silent = True
''navigate to page
MyBrowser.navigate MyURL
MyBrowser.Visible = True
''wait until ready
Do
DoEvents
Loop Until MyBrowser.readyState = READYSTATE_COMPLETE

Set HTMLDoc = MyBrowser.document
''enter permit number and suffix in text box
HTMLDoc.all.txtPermit.Value = "11"
HTMLDoc.all.txtPermitSuf.Value = "R"
'# HTMLDoc.getElementById("txtPermit").attribute.Value = "11"
'# HTMLDoc.getElementById("txtPermitSuf").attribute.Value = "R"
For Each MyHTML_Element In HTMLDoc.getElementsByTagName("input")
'# If MyHTML_Element.ID = "txtPermit" Then MyHTML_Element.Value = "11"
'# If MyHTML_Element.ID = "txtPermitSuf" Then MyHTML_Element.Value = "R"
If MyHTML_Element.Type = "submit" Then MyHTML_Element.Click: Exit For
Next
Err_Clear:
 If Err <> 0 Then
 Err.Clear
 Resume Next
 End If

End Sub

我还添加了一些注释代码&#34; &#39;#&#34;这是朋友建议我使用的其他方式。有谁知道我错过了什么?

提前感谢您的帮助和时间! :)

1 个答案:

答案 0 :(得分:1)

这是您的组织网络阻止流量

在不同的网络上尝试使用其他计算机