通过 VBA 填写网络表格
Fill a web form via VBA
简介: 首先我要声明,我对 "HTML" 一点都不舒服。我已经对如何完成下面描述的任务进行了详尽的网络搜索。 (例如 Retrieving data from the web using vba, https://www.youtube.com/watch?v=kdD2bb4DU6c, https://www.youtube.com/watch?v=GswfT0Mrr5M )
问题:总之想填一个网站表格(大约10^3次),提交查询并得到每一个结果。为了测试它并保持简单,我正在测试它的一个值。到目前为止,我设法拼凑的 VBA 代码是基于其他人所做的。它会打开一个新的 IE window,其中包含所需的 URL,但不会使用 "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
我还包含了一些注释代码“'#”,这是朋友建议我使用的其他可能有效的方法。有谁知道我错过了什么吗???
提前感谢您的帮助和时间! :)
是您的组织网络阻塞了流量
尝试不同网络上的不同计算机
简介: 首先我要声明,我对 "HTML" 一点都不舒服。我已经对如何完成下面描述的任务进行了详尽的网络搜索。 (例如 Retrieving data from the web using vba, https://www.youtube.com/watch?v=kdD2bb4DU6c, https://www.youtube.com/watch?v=GswfT0Mrr5M )
问题:总之想填一个网站表格(大约10^3次),提交查询并得到每一个结果。为了测试它并保持简单,我正在测试它的一个值。到目前为止,我设法拼凑的 VBA 代码是基于其他人所做的。它会打开一个新的 IE window,其中包含所需的 URL,但不会使用 "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
我还包含了一些注释代码“'#”,这是朋友建议我使用的其他可能有效的方法。有谁知道我错过了什么吗???
提前感谢您的帮助和时间! :)
是您的组织网络阻塞了流量
尝试不同网络上的不同计算机