我正在尝试使用Excel Vba从IE中的下拉键盘中选择项目

时间:2017-09-29 21:43:03

标签: excel-vba internet-explorer kendo-ui vba excel

我找到了从下拉列表中选择固定选择的解决方案。 现在我要做的就是找出如何根据选择选择项目

以下选择下拉列表中的第一个项,但是,我发现将下拉列表设置为“打开”是必需。

选择参数更改为2会选择列表中的第二项等。

我想尝试使用getElementById并循环使用innerText可能是要走的路,因为我不知道其他任何方式。

ie.Document.parentWindow.execScript "$('#drgdTankCrude').data('kendoGrid').dataItem($('#Tank_ID').data('kendoDropDownList').select(1));"

这是网页代码的一部分。

 <input name="Tank.ID" id="Tank_ID" style="width: 200px; display: none;" type="text" data-role="dropdownlist"></span>

'Lots of other stuff in here for formatting

<div class="k-widget k-grid" id="drgdTankCrude" style="left: 890.32px; top: 93.7px; display: block; position: absolute;" data-role="grid">

<table class="k-selectable" role="grid" style="-ms-touch-action: double-tap-zoom pinch-zoom;" data-role="selectable">

  <colgroup><col><col></colgroup>

  <thead class="k-grid-header" role="rowgroup">

    <tr role="row">
      <th class="k-header" scope="col" data-title="Tank" data-index="0" data-field="ID"><span class="k-link">Tank</span></th>
      <th class="k-header" scope="col" data-title="Capacity" data-index="1" data-field="Capacity"><span class="k-link">Capacity</span></th>
    </tr>
  </thead>
  <tbody role="rowgroup">
       <tr class="k-state-selected" aria-selected="true">
        <td>179800</td>
        <td>202.06</td></tr>
       <tr class="k-alt" aria-selected="false">
        <td>179801</td>
        <td>202.82</td>
       </tr>
    </tbody>
  </table>
</div>

'Code before dropdown

<tbody role="rowgroup">
     <tr>
        <td>179800</td>
        <td>202.06</td></tr>
     <tr class="k-alt">
        <td>179801</td>
        <td>202.82</td>
     </tr>
  </tbody>

'Code before dropdown opens

<div class="k-widget k-grid" id="drgdTankCrude" style="left: 890.32px; top: 93.71px; display: none; position: absolute;" data-role="grid">

'Code change after dropdown opens

<div class="k-widget k-grid **k-custom-visible**" id="drgdTankCrude" style="left: 890.32px; top: 93.71px; display: block; position: absolute;" data-role="grid">

'Code change after making a selection

<tbody role="rowgroup">
   <tr class="k-state-selected" aria-selected="true">
    <td>179800</td>              '<<-----This item selected
    <td>202.06</td></tr>
   <tr class="k-alt" aria-selected="false"> '<<--If selected then unselected
    <td>179801</td>                             'otherwise ends at k-alt">
    <td>202.82</td>
   </tr>
</tbody>

1 个答案:

答案 0 :(得分:0)

选择kendoDropDownList中的第一项的答案..

ie.Document.parentWindow.execScript "$('#drgdTankCrude').data('kendoGrid').dataItem($('#Tank_ID').data('kendoDropDownList').select(1));"