我正在使用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
答案 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
"btnRequestEstimates