使用VBA浏览网站并修改下拉框

早上好,

我正在开发一个VBA项目,我想访问一个内部公司,需要login,网站和从表中提取数据。 我已成功编写将导航到正确网站的代码,然后将下拉框的值从“所有事务”修改为“正在运行的logging”。 我遇到的问题是,一旦更新下拉框,我不能在表中的数据刷新。 在网站上,下拉字段旁边是一个“Go”超链接。 每当我尝试激活链接,使用VBA,它将重置下拉,我没有得到显示的数据,我想要的。

我find了一个类似的post,用户解释说这个问题与网站的安全性有关,需要使用.FireEvent。 虽然这个概念对我来说是有意义的,但这是另一回事。 我和他人之间最大的区别是,当他的下拉框被改变时,会激活事件。 在我的情况下,有一个单独的ID,即上面提到的“Go”超链接,一旦input下拉值,就需要激活它。

下面是下拉框选项所在HTML代码的一部分以及“GO”超链接。

<select name="classList" onchange="selectClass(this);"><option class=tblrow2 value="All" selected=selected>All Schedules</option> <option value="A" > Transactions-Financial </option> <option value="N" > Transactions-Non-Financial </option> <option value="RB" > Running Balance </option></select> <input type="hidden" name="classindx" id = "classindx" value="" /> &nbsp;&nbsp;<a href="#" onClick="submitTransForm()">&nbsp;Go&nbsp;</a> 

这是我的代码的一部分,修改下拉框的值。

 'try to get form by ID Set frm = ie.Document.getElementByID("myFormID") 'try to get form by name If frm Is Nothing Then Set frm = ie.Document.getElementsByName("facilityFeeRepayForm").Item(0) 'Set ieButton = ie.Document.getElementById("classindx") Here I tried to treat the Go hyperlink like a button but that didn't work either. If frm Is Nothing Then Else ie.Visible = True For Each element In frm.elements On Error Resume Next Select Case element.Name Case "classList": element.Value = "RB" ie.getElementByID("classindx").FireEvent("onClick") 'nothing happens with this code While ie.ReadyState <> 4: DoEvents: Wend End Select Next End If 

我将不胜感激任何帮助,您可以提供。

谢谢,约翰

而不是点击链接,试试这个:

 ie.Document.parentWindow.execScript "submitTransForm()", "JavaScript"