VBA代码从HTML下拉菜单中select,使用值而不是索引

我对VBA和HTML相当陌生。 我正在写一个VBAmacros,在填写一个Web表单之前通过一个网站浏览。

在导航过程中,脚本需要从下拉菜单中select一个选项。 我目前正在使用以下(无疑是可怕的,但function)的代码,其中find正确的下拉菜单,然后在索引2select选项。

Set dropOptions = HTMLDoc.getElementsByTagName("select") For Each op In dropOptions If op.getAttribute("name") = "tilastojakso" Then op.Focus op.selectedIndex = 2 Exit For End If Next op 

这里是相关下拉菜单的HTML:

 <tr> <td>Statistical period</td> <td colspan="2"><select name="tilastojakso" > <option value="2016-07">2016-07 (deadline 12.08.2016)</option> <option value="2016-06">2016-06 (deadline 14.07.2016)</option> <option value="2016-05">2016-05 (deadline 14.06.2016)</option> <option value="2016-04">2016-04 (deadline 16.05.2016)</option> <option value="2016-03">2016-03 (deadline 14.04.2016)</option> <option value="2016-02">2016-02 (deadline 14.03.2016)</option> <option value="2016-01">2016-01 (deadline 12.02.2016)</option> <option value="2015-12">2015-12 (deadline 18.01.2016)</option> <option value="2015-11">2015-11 (deadline 14.12.2015)</option> <option value="2015-10">2015-10 (deadline 13.11.2015)</option> <option value="2015-09">2015-09 (deadline 14.10.2015)</option> <option value="2015-08">2015-08 (deadline 14.09.2015)</option> <option value="2015-07">2015-07 (deadline 14.08.2015)</option> <option value="2015-06">2015-06 (deadline 14.07.2015)</option> <option value="2015-05">2015-05 (deadline 12.06.2015)</option> <option value="2015-04">2015-04 (deadline 18.05.2015)</option> <option value="2015-03">2015-03 (deadline 16.04.2015)</option> </select></td> 

问题:

我想从基于选项值的下拉列表中select,而不是索引。 假设我有一个名为“period”的variables,其中包含string“2016-04”。 我希望脚本select一个与“period”中存储的string相匹配的值。 我花了几个小时search这个网站和其他地方,但一直没能find我能理解的答案。

提前致谢!

您可以使用下面的代码按值来select选项

 Set dropOptions = HTMLDoc.getElementsByTagName("select") For Each o In dropOptions.Options If o.Value = "2016-04" Then o.Selected = True Exit For End If Next