无法使用VBA单击网站上的按钮

无法使用VBA单击网站上的按钮,vba,Vba,您好,我正在尝试使用vba单击网站上的按钮。 下面是html标记行。我尝试使用getelementsbytagname(“inputAdd”)调用它,但它抛出了错误。 以下是html标记: 添加到购物车 您要添加到购物车的产品可能需要配置。 价格不反映有效价格 您的代码有几个问题,我将重点介绍两个应该解决的问题,但仍有待测试: VBA中的对象必须通过关键字set 您的代码中定义了一个集合,如下所示: objCollection = ie.Document.GetElementsByTagN

您好,我正在尝试使用vba单击网站上的按钮。 下面是html标记行。我尝试使用getelementsbytagname(“inputAdd”)调用它,但它抛出了错误。 以下是html标记:


添加到购物车
您要添加到购物车的产品可能需要配置。

价格不反映有效价格


您的代码有几个问题,我将重点介绍两个应该解决的问题,但仍有待测试:

VBA中的对象必须通过关键字
set
您的代码中定义了一个集合,如下所示:

objCollection = ie.Document.GetElementsByTagName("addCart")
这行代码很可能会引发错误,因为
objCollection
应该是一个集合,因此它应该是:

Set objCollection = ie.Document.GetElementsByTagName("addCart")
您给我们的HTML中没有标记
您试图将按钮定义为HTML文档中
对象集合的第一个元素:

Set Button = ie.Document.GetElementsByTagName("button")(0) 
然而,据我所见,在您提供给我们的HTML代码片段中,没有任何元素具有标记
。也许,您已经看到
对象的
类型
属性是
按钮
,您会感到困惑。 要正确设置按钮,您应该使用:

Set Button = ie.Document.getElementsByTagName("input")(0)
但是请注意,上面假设按钮是页面的第一个输入元素,我怀疑页面是否是包含登录表单或搜索引擎的标题。因此,您可能要做的是循环输入并单击具有值Configure的输入:


这是网站的html:但我们也(特别是)需要VBA中不起作用的代码。intStart=InStr(1,strSubHTML,“WS-C2960S-24TD-L”,vbTextCompare)+1 intStart=InStr(intStart,strSubHTML,“WS-C2960S-24TD-L”,vbTextCompare)objCollection=ie.Document.GetElementsByTagName(“addCart”)Set form=ie.Document.Body.GetElementsByTagName(“configurableQty12”)(0)Set Button=ie.Document.GetElementsByTagName(“Button”)(0)Button.click单击事件是我无法执行的事件。请注意:上面两个可能是两个修复,但您应该自己调试一下,因为代码中可能还有其他问题。在这种情况下,如何检查按钮是否处于活动状态?有没有办法检查按钮的状况。
Set AllButtons = ie.Document.getElementsByTagName("input")
For Each button In AllButtons
    If button.value = "Configure" Then
        button.Click
        Exit For
    End If
Next button