使用vba更改onlick网页选项中的值(IE 11)

时间:2017-02-19 11:22:22

标签: vba internet-explorer dom

我是VBA DOM中的新手,我试图在网页中选择一个特定的选项。不幸的是,除了内部函数的值之外,该选项的ID名称与页面中的其他选项相同。 这里是网络代码:

<table class="stati_check" id="ctl00_NetSiuCPH_ctl25">
<tr>
<td>
<span class="check">
<INPUT onclick="if (!boxWorkflow_rbSelect(this)) return;setTimeout('__doPostBack(\'ctl00$NetSiuCPH$ctl25$ctl00$WorkflowState\',\'\')', 0)" tabIndex=0 
id=ctl00_NetSiuCPH_ctl25_ctl00_WorkflowState type=radio 
value=ONVALIDAPROOF name=ctl00$NetSiuCPH$ctl25$ctl00$WorkflowState>
</span>
<td>
<span class="check">
<INPUT onclick="if (!boxWorkflow_rbSelect(this)) return;setTimeout('__doPostBack(\'ctl00$NetSiuCPH$ctl25$ctl01$WorkflowState\',\'\')', 0)" tabIndex=0 
id=ctl00_NetSiuCPH_ctl25_ctl01_WorkflowState type=radio 
value=ONANNULA1 name=ctl00$NetSiuCPH$ctl25$ctl01$WorkflowState>
</span>
</td>
</tr>
</table>

可以看出,当我运行VBA代码行时,两个ID是相同的:

Set pdr_button = ie.Document.getElementById("ctl00_NetSiuCPH_ctl25_ctl00_WorkflowState").click

只会选择第一个选项,但我正在尝试选择值为“ONANNULA1”的选项。 我尝试过删除/分发:

Set Annulla_Button = ie.Document.getElementById("ctl00_NetSiuCPH_ctl25_ctl00_WorkflowState")
Annulla_Button.removeAttribute ("value")
Annulla_Button.setAttribute ("value"), "ONANNULLA1"
Annulla_Button.Click

然而结果是没有选择任何东西。

有人能帮助我吗? 提前感谢您的耐心

1 个答案:

答案 0 :(得分:0)

这样的代码条:`

Set TABELLA_STATI = ie.Document.getElementById("ctl00_NetSiuCPH_ctl25").getElementsByTagName("TR")
For Each tr In TABELLA_STATI
 Set coltd = tr.getElementsByTagName("TD")
For Each td In coltd
Set option_Button = td.getElementsByTagName("INPUT")
Option_Value = option_Button(0).Value
If InStr(1, Option_Value, "ONANNUL") > 0 Then
option_Button(0).Click
Exit For
End If
Next td
Next tr

`