我正试图通过Excel VBA在Internet Explorer中浏览。
这是我用来做的VBA代码,工作正常:
IEDoc.getElementById("PROGRAMME-select").selectedindex = 1
但是,对于另一个下拉菜单,在选择后动态更改表单的其余部分,上面的代码不起作用。我认为这是由于网页的javascript。这是它的HTML代码:
<DIV id=Q_FORMAT jQuery1441195683481="347">
<INPUT id=Q_FORMAT_data value='{"name":"FORMAT","inputType":"select"}' type=hidden name=Q_FORMAT_data>
<DIV style="DISPLAY: block" id=FORMAT-label>
<LABEL><B>Format :</B> </LABEL></DIV><SELECT id=FORMAT-select name=FORMAT-select>
<OPTION id=FORMAT_EMPTY_OPTION value=EMPTY_OPTION></OPTION>
<OPTION id=FORMAT_YES value=FORMAT_YES name="FORMAT_YES">Non-Standard</OPTION>
<OPTION id=FORMAT_NO selected value=FORMAT_NO name="FORMAT_NO">Standard</OPTION></SELECT> </DIV>
是否有人知道如何触发javascript以便通过我正在尝试的选择更新表单的其余部分?或者这可能是我面临的一个完全不同的问题?
答案 0 :(得分:0)
你能尝试对列表框使用fireevent方法并尝试一次吗?
例如代码:
IEDoc.getElementById("PROGRAMME-select").selectedindex = 2
IEDoc.getElementById("PROGRAMME-select").fireevent "Onchange"
答案 1 :(得分:0)
表单更改后,文档上有新的html。而不是使用IEDoc - 您可能在更改之前设置 - 只需使用ie.document.getElementById(“NEW NAME HERE”)。selectedindex = 1
(这假设您将msie的实例设置为ie。只需使用您为此实例提供的任何变量,.document将在任何javascript更改后始终为您提供最新版本。表单ID可能也已更改,因此您可能会尝试再次列出表单中的所有ID,以便查看。)