VBA:选择索引IE列表

时间:2016-11-17 07:09:49

标签: html vba internet-explorer

长期读者和第一次海报。我有点陷入困境,为什么我似乎无法使用此VBA代码从IE的下拉列表中选择索引:

    IE.document.getElementById("ddlReportTemplate").Focus
    IE.document.getElementById("ddlReportTemplate").selectedIndex = 23
    IE.document.getElementById("ddlReportTemplate").FireEvent ("onchange")

以下是源代码:

<select name="ddlReportTemplate" class="inputControl" id="ddlReportTemplate" style="width: 308px;" onchange="OnReportTemplateSelectionChanged(event)" autocomplete="off">
<option selected="selected" value="-1">Please select...</option>
<option value="21">Action Closeout Report</option>
<option value="19">Action Status Report</option>
<option value="8">Bi Monthly Report HAZID</option>
<option value="7">Bi Monthly Report HAZOP</option>
<option value="23">Combined Action Summary (Dashboard)</option>
<option value="20">Design Review Dump</option>
<option value="11">HAZOP Action Sheet Population</option>
<option value="22">HAZOP Data Dump</option>
<option value="18">NCOC Actions Closed this week (since 01/01/16)</option>
<option value="17">NCOC Actions Opened/Re-opened (since 01/01/16)</option>
<option value="13">NCOC Project Action Status</option>
<option value="6">Pisys Test</option>
<option value="27">PM660</option>
<option value="5">Project Action Overdue Report</option>
<option value="25">Shell GPS 'live' actions</option>
<option value="9">Test</option>
<option value="15">Weekly update</option>
<option value="10">WEL PSP Report dump</option>
<option value="24">Workpack Specific</option><option value="26">workpack 073</option>

我也试过

With IE
    While .Busy Or .readyState <> 4: DoEvents: Wend
    IE.document.getElementByName("ddlReportTemplate")(0).Value = 23
    IE.document.getElementByName("ddlReportTemplate").FireEvent ("onchange")

End With

我已经将IE定义为IE的对象,它已经打开了网站。

不确定问题出在哪里,但我希望这里有人会成为传奇并找到解决方案。

谢谢:)

PS:不幸的是,我不能发布网址,因为它对公司很敏感。

1 个答案:

答案 0 :(得分:0)

该方法为getElementsByName而非getElementByName

IE.document.getElementsByName("ddlReportTemplate")(0).Value = 23

但由于SelectID,我会改用ID

IE.document.getElementById("ddlReportTemplate").Value = 23