我想检查第一个复选框,但我在VBA中的代码不起作用。
<input type="Checkbox" name="report_filters_product" value="2340">
<input type="Checkbox" name="report_filters_product" value="1338">
<input type="Checkbox" name="report_filters_product" value="2998">
<input type="Checkbox" name="report_filters_product" value="8007">
检查第一个复选框的代码是:
Set Element = objIE.document.getElementsByName("report_filters_product").Value = 2340
Element.Checked = True
但这不起作用。可能出现什么问题?
答案 0 :(得分:0)
在聊天中的对话之后,我注意到这段代码出了什么问题。使用第一行代码,您基本上选择了name="report_filters_product"
所有元素的数组。如果要更改要检查的第一个复选框,则应首先指定要选择元素的第一个。这可以按如下方式完成:
Set Element = objIE.document.getElementsByName("report_filters_product");
Element[0].Checked = True;
关键部分是[0]
,它告诉您的脚本只选择第一个复选框。
使用此代码,您不会选中复选框的值,而是选中复选框的索引。如果要选择复选框所具有的值,最简单的解决方案是为每个复选框指定唯一的id
属性,然后选择该属性。这样的解决方案看起来像这样:
<input type="Checkbox" name="report_filters_product" value="2340" id="report_2340">
<input type="Checkbox" name="report_filters_product" value="1338" id="report_1338">
<input type="Checkbox" name="report_filters_product" value="2998" id="report_2998">
<input type="Checkbox" name="report_filters_product" value="8007" id="report_8007">
使用脚本然后按ID选择项目,如下所示:
Set Element = objIE.document.getElementById("report_2340");
Element.Checked = True;
请注意,在这种情况下,不需要[0]
,因为getElementById
总是返回单个元素(因为{{1}是文档中的唯一标识符。)