【问题标题】:How to use VBA to change "checked" property of radio buttons on web page如何使用 VBA 更改网页上单选按钮的“选中”属性
【发布时间】:2013-09-20 13:15:12
【问题描述】:

我正在使用 VBA 让 Excel 浏览一些网页并从中提取数据。在一个页面上,我需要更改在继续之前检查了两个单选按钮中的哪一个。不幸的是,组中的各个单选按钮没有指定的 ID。默认情况下是否为单选按钮分配了一个索引,我可以使用它来确定我想要检查哪个?如何在 VBA 中执行此操作?

这是来自网页的源代码。最初选中第一个单选按钮。我想在单击 sbmSearch 按钮之前将第二个更改为选中。

<table class="Searchstyle">
   <tr>
      <td>Search by
         <input type="radio" name="rdoSearchBy" value="Report" checked> Report No or 
      </td>
      <td>
         <input type="radio" name="rdoSearchBy" value="Author"> Author 
      </td>
      <td>
         <input type="submit" name="sbmSearch" value="Search">
      </td>
   </tr>
</table>

这是我的 VBA 代码:

With oIE ' my InternetExplorer object
   .
   .
   With .Document.all
      '.rdoGiren.Author.Checked = True ' attempt 1 - error
      .getElementsByName("rdoSearchBy")(1).Checked = True ' attempt 2 - error
      .sbmSearch.Click  ' Clicks the Search button
   End With
   Do While .Busy: DoEvents:  Loop
   Do While .ReadyState <> 4: DoEvents: Loop
   .
   .
End With

我想一定有办法做到这一点,我只是没有找到答案。

【问题讨论】:

    标签: javascript jquery vba excel


    【解决方案1】:

    您是否尝试过查看 VBA 是否允许这样的事情?

        With .Document.all
          .getElementsByClassName("Searchstyle")(0)(1)(0).Checked = True ' attempt 2 - error
          .sbmSearch.Click  ' Clicks the Search button
    

    这样你就可以沿着表格的子元素向下工作。

    【讨论】:

    • Garrett,感谢您的建议,但我在尝试时收到“对象不支持此属性或方法”错误。看来 IE8 不支持 getElementsByClassName() 方法,而且 IT 部门已将我们锁定到 IE8。
    • 很遗憾听到这个消息,为那些旧版本的 IE 开发可能真的很痛苦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 2017-09-30
    相关资源
    最近更新 更多