0

我正在使用 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

我认为必须有办法做到这一点,我只是没有找到答案。

4

1 回答 1

0

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

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

这样,您只需沿着表格的子元素向下工作。

于 2013-09-20T13:32:34.503 回答