我的自动化工作的一部分存在问题,那就是使用VBA和IE在网页上的组合框中选择所有选项。
此代码在组合框中选择一个项目
Set frm = HTMLDoc.getElementsByName("UFG.USER_TYPES")(0)
frm.Value = "AUT"
但是,当我尝试选择多个项目时,它只会选择最后一个,而不是全部。
这是网页上的代码
<p id="DispFormCollapsible.Rc10"class="formrow" >
<span id="DispFormCollapsible.Rc10.C1" class="querytextleft">
<label for="UFG.USER_TYPES" id="LabelForContro123"class = "simpletext" >
Accessible Types:<span class="redstar">*</span></label></span>
<span id="DispFormCollapsible.Rc10.C2" class="querytextright">
<span class="labelColumn_combo">
<span class="labelColumn_combi_brdr">
<select name= "UFG.USER_TYPES" multiple= "true" class = "dropdownexpandalbe"
id="UFG.USER_TYPES" title = "Accessible Financial Transaction Types">
<option value="AUT" title="ACTIVE USER TYPE1" >TYPE1</option>
<option value="SET" title="Selective User Type" >TYPE2</option>
<option value="TST" title="Test User Type" >TEST3</option>
</select></span></span>
<input type ="hidden" name= "UFG.USER_TYPES" value="NULL" >
</span></p>
这是我的VBA行,用于选择一项
Set frm = HTMLDoc.getElementsByName("UFG.USER_TYPES")(0)
frm.Value = "AUT"
我需要做的是在组合框中选择所有“选项值”。我认为它可能需要一个数组,或者其他某种方式。我已经尝试搜索,但是却一无所获。任何帮助表示赞赏。谢谢
尝试以下操作,但出现错误91未设置块。我还尝试过在子级中使用值“ AUT”,这样做时我没有收到错误,但它没有选择任何内容。
With HTMLDoc.getElementsByName("Select")(0)
.Children(1).Selected = True
.Children(2).Selected = True
.Children(3).Selected = True
End With
还尝试了以下操作,这不会产生错误,而只会选择列表中的第一个选项。
With HTMLDoc.getElementsByName("UFG.USER_TYPES")(0)
.Children(AUT).Selected = True
.Children(SET).Selected = True
.Children(TST).Selected = True
End With
这很奇怪,当我使用此代码时,它将选择列表中的前两个,而不是第三个。
With HTMLDoc.getElementsByName("UFG.USER_TYPES")(0)
.Children(all).Selected = True
End With
答案 0 :(得分:0)
cvtColor(...,BGR2GRAY)
上面的代码修复了它...哎呀!