单击Internet Explorer

时间:2015-07-28 19:03:05

标签: html vba excel-vba internet-explorer input

我试图简单地检查"是"如果用户点击"是"在互联网资源管理器输入复选框上到一个MsgBox弹出窗口,如果用户点击" No"在MsgBox上。无论我尝试什么,代码似乎都没有点击我希望它点击的按钮。

我的代码如下:

strPrompt = "Please look to see if this client has a valid brokerage account available for enrollment. Would you like to enroll this client in FRT service and submit a ticket?"
strTitle = "User Input Required"



iRet = MsgBox(strPrompt, vbYesNo, strTitle)
    If iRet = vbYes Then
        Enrollment_Button = objIE.document.getElementsById("classActionFlagReq")
        Enrollment_Button.Value = "Y"
    Else
        MsgBox "No"
    End If

我还将包含包含Yes和No按钮的HTML源代码:

<SPAN class=radio2>
<input name="classActionFlagReq" class="radio2" type="radio" value="Y"></input>
</span>
<SPAN class=radio2>
<input name="classActionFlagReq" class="radio2" type="radio" value="N"></input>
</span>

我哪里错了? 更新编辑代码:

iRet = MsgBox(strPrompt, vbYesNo, strTitle)
    If iRet = vbYes Then
        Set Enrollment_Button = objIE.document.getElementById("classActionFlagReq")
        Enrollment_Button.Checked = True
    Else
        MsgBox "No"
    End If

3 个答案:

答案 0 :(得分:0)

属性nameid不可互换。您没有任何id等于“classActionFlagReq”的元素,因此getElementsById找不到任何元素。

请注意,id是唯一的,因此您不能像使用input一样将id设置为相同的name

答案 1 :(得分:0)

你有一些问题。

  1. 它是getElementById(),而不是getElementsById()
  2. getElementById()返回一个对象。使用Set

    Set Enrollment_Button = objIE.document.getElementById("classActionFlagReq")
    
  3. 使用Checked属性设置复选框或单选按钮,而不是Value="Y"

    Enrollment_Button.Checked = True
    
  4. 您对两个单选按钮使用相同的name,这很好(这就是您如何定义广播&#34;组&#34;)但如果您想要访问单个单选按钮(以便您可以选择它),您需要分配一个唯一的ID(或使用不同的选择器方法,如getElementsByName)。

答案 2 :(得分:0)

Set ieRadio = objIE.document.all
ieRadio.Item("classActionFlagReq")(1).Checked = True

这解决了我的问题!