2017-02-19 5 views
0

VBA DOM oblujectで新しくできました。ウェブページで特定のオプションを選択しようとしています。不幸にも、そのオプションには、内部関数の値を除いてページ内の他のオプションと同じID名があります。ここ ウェブコード:VBA(IE 11)を使用してonlick Webページオプションの値を変更します。

<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> 

ように2つのIDが同じである見ることができるので、私はVBAのコード行を実行する場合:それは唯一の最初のオプションを選択します

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

を、しかし、私値 "ONANNULA1"のものを選択しようとしています。 私は削除/ setatributeで試してみた:

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

結果が何も選択されないことですが。

誰かが私を助けることができますか?あなたの忍耐

+0

あなたは試すんでした:セットAnnulla_Button = ie.Document.getElementById( "ctl00_NetSiuCPH_ctl25_ctl00_WorkflowState")(1) – h2so4

+0

@ h2so4 - getElementByIdは要素のコレクションを返しません。単一の要素を返します。 –

+0

最初にテーブルを選択してから、テーブルのすべての入力タグを返して値を確認してください。例えば。 'set elements = ie.document.getelementByID(" ctl00_NetSiuCPH_ctl25 ")。getElementsByTagName(" input ")'次に、要素コレクションを反復して、値があなたが望むときに見つけます。 –

答えて

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 

`

関連する問題