VBA访问远程网站,在已经自动点击其他网页上的按钮后自动点击提交

时间:2012-01-11 08:57:32

标签: vba web automation click remote-server

我正在使用excel 2010中的vba以及Internet Explorer 8和Vista。下面的代码可以访问远程网站并发布表单。在结果页面上,代码应单击“获取估计”按钮。相反,我得到此错误“对象变量或未设置块变量”。代码中突出显示的问题行是“estimate = ieApp.document.getElementById(”btnRequestEstimates“)”“。

我认为部分问题可能是不工作的按钮是不属于表单的提交按钮。我也想知道在第二个按钮点击之前是否需要重置变量。错误消息暗示这是一个限定问题,但我认为这是在这种情况下限定元素的一种非常标准的方法。这些是我一直在谷歌上搜索无效的一些东西,我不确定是什么问题。

Sub btn_version()

Dim ieApp As Object
Dim ieDoc As Object
Dim ieForm As Object
Dim ieObj As Object
Dim URL As String
Dim estimate As Object

URL = "http://www.craft-e-corner.com/p-2688-new-testament-cricut-cartridge.aspx"
Set ieApp = CreateObject("InternetExplorer.Application")
ieApp.Visible = True
ieApp.navigate URL
While ieApp.Busy Or ieApp.readyState <> 4: DoEvents: Wend

Set ieDoc = ieApp.document
Set ieForm = ieDoc.forms(1)
For Each ieObj In ieForm.Elements
If ieObj.ClassName = "AddToCartButton" Then
ieObj.Click
End If
Next ieObj

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
While ieApp.Busy Or ieApp.readyState <> 4: DoEvents: Wend
estimate = ieApp.document.getElementById("btnRequestEstimates")
estimate.submit
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

End Sub

1 个答案:

答案 0 :(得分:3)

下面的代码结合了automate submitting a post form that is on a website with vba and xmlhttp中的xmlhttp代码(通过点击{{1},可以更好地控制POST,即跳过我们问题中的Set ieDoc = ieApp.document部分)来自this page

的最终URl上的}按钮
"btnRequestEstimates