Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “如何使用VBA更改”;勾选“;网页上单选按钮的属性_Javascript_Jquery_Vba_Excel - Fatal编程技术网

Javascript “如何使用VBA更改”;勾选“;网页上单选按钮的属性

Javascript “如何使用VBA更改”;勾选“;网页上单选按钮的属性,javascript,jquery,vba,excel,Javascript,Jquery,Vba,Excel,我使用VBA允许Excel浏览某些网页并从中提取数据。在一个页面上,我需要在继续之前更改两个单选按钮中的哪个被选中。不幸的是,组中的单个单选按钮没有指定的ID。默认情况下,是否有一个指定给单选按钮的索引,我可以使用它来确定要选中的单选按钮?如何在VBA中执行此操作 这是网页上的源代码。最初选中第一个单选按钮。我想在单击sbmSearch按钮之前将第二个更改为选中 <table class="Searchstyle"> <tr> <td>Sea

我使用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
使用oIE“我的InternetExplorer对象”
.
.
用。文件。全部
“.rdoGiren.Author.Checked=True”尝试1-错误
.getElementsByName(“rdoSearchBy”)(1).Checked=True“尝试2-错误
.sbmSearch.Click单击“搜索”按钮
以
请稍候。忙碌:DoEvents:循环
执行While.ReadyState 4:DoEvents:Loop
.
.
以

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

你试过看看VBA是否允许这样的事情吗

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

这样,您只需沿着表的子元素进行操作。

Garrett,谢谢您的建议,但我在尝试时遇到了一个“对象不支持此属性或方法”错误。IE8似乎不支持getElementsByCassName()方法,It部门将我们锁定在IE8上。很遗憾,为那些旧版本的IE开发可能是一件非常痛苦的事情。