Html 使用IE11下拉框中的VBA选择值

Html 使用IE11下拉框中的VBA选择值,html,vba,internet-explorer-11,getelementbyid,dispatchevent,Html,Vba,Internet Explorer 11,Getelementbyid,Dispatchevent,我到处寻找解决办法,但什么都不管用。这是我的密码: Sub GetData() Dim IE As Object Dim ccy As Object Dim ccy1 As Object Dim allstatus As Object Dim GetMTM As Object Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True Application.DisplayAlerts = False

我到处寻找解决办法,但什么都不管用。这是我的密码:

Sub GetData()


Dim IE As Object
Dim ccy As Object
Dim ccy1 As Object
Dim allstatus As Object
Dim GetMTM As Object

Set IE = CreateObject("InternetExplorer.Application")

IE.Visible = True
Application.DisplayAlerts = False

'go to MTM report
IE.navigate "www.mylink.com"

'check for good connection
Do Until Not IE.Busy And IE.readyState = 4
DoEvents
Loop
'wait for window to open
Application.Wait (Now + TimeValue("0.00:01"))

'send login information
SendKeys "blah", True
SendKeys "{TAB}", True
SendKeys "blah"
SendKeys "{TAB}", True
SendKeys "blah"
SendKeys "{ENTER}", True

'check for good connection
Do Until Not IE.Busy And IE.readyState = 4
DoEvents
Loop
'wait for window to open
Application.Wait (Now + TimeValue("0.00:01"))

'all status
Set allstatus = IE.document.getelementbyid("allstatus1")
allstatus.Click

Set ccy = IE.document.createevent("HTMLEvents")
ccy.initevent "change", True, False
Set ccy1 = IE.document.getelementbyid("currency")

ccy1.selectedindex = 9
ccy1.dispatchevent ccy 'nothing happens here!!!

'load data
Set GetMTM = IE.document.forms(0)
GetMTM.submit

End Sub
问题是我无法使dispatchevent正常工作。如果我使用f8单步执行代码,我可以看到下拉框变为CAD,但当我提交表单时,它会变回原始值。这一页实际上从未刷新过。我已经尝试了这个网站上建议的每一个解决方案,所有的工作原理与下面完全相同。仅供参考,我正在使用IE11

PS我很抱歉,但我不能提供该页面的链接

更新:我现在认为提交表单事件现在不起作用。如果我删除了下拉列表和复选框,请单击,然后尝试使用

'load data
Set GetMTM = IE.document.forms(0)
GetMTM.submit
它不会加载表单。但是如果我自己去点击“去”按钮,它就会工作。。 下面是提交按钮和复选框的HTML

                <TD align="right" valign="center"><input id="matchedstatus1" name="matchedstatus" style="font-family: Verdana, Helvetica, sans-serif; font-size: 12px" onclick="javascript:changeStatus(markToMarketBean, this)" type="checkbox" value="true" checked="checked"/><input type="hidden" name="_matchedstatus" value="on"/>&nbsp;</TD>
                <TD align="left" valign="center">Matched</TD>
                <TD><IMG src="/images/gtss/neutral/spacer.gif" width="12"
                    height="1"></TD>
                <TD align="right" valign="center"><input id="oursource1" name="oursource" style="font-family: Verdana, Helvetica, sans-serif; font-size: 12px" onclick="javascript:changeSource(markToMarketBean, this)" type="checkbox" value="true" checked="checked"/><input type="hidden" name="_oursource" value="on"/>&nbsp;</TD>
                <TD align="left" valign="center">Ours</TD>
                <TD rowspan="2"><IMG src="/images/gtss/neutral/spacer.gif"
                    width="10" height="1"></TD>
                <TD align="left" valign="middle" rowspan="2"><input type="submit"
                    name="go" value='Go' 
                    style="font-family: Verdana, Helvetica, sans-serif; font-size: 12px">
                </TD>
            </TR>
            <TR>
                <TD align="right" valign="center"><input id="allstatus1" name="allstatus" style="font-family: Verdana, Helvetica, sans-serif; font-size: 12px" onclick="javascript:changeStatus(markToMarketBean, this)" type="checkbox" value="true"/><input type="hidden" name="_allstatus" value="on"/>&nbsp;</TD>
                <TD align="left" valign="center">All</TD>
                <TD><IMG src="/images/gtss/neutral/spacer.gif" width="12"
                    height="1"></TD>
                <TD align="right" valign="center"><input id="theirsource1" name="theirsource" style="font-family: Verdana, Helvetica, sans-serif; font-size: 12px" onclick="javascript:changeSource(markToMarketBean, this)" type="checkbox" value="true"/><input type="hidden" name="_theirsource" value="on"/>&nbsp;</TD>
                <TD align="left" valign="center">Theirs</TD>

匹配
我们的
全部的
他们的
编辑:以下是dropbox的html代码:

<select id="currency" name="currency" style="font-family: Verdana, Helvetica, sans-serif; font-size: 12px;">
            <option value="AED">AED</option><option value="ARS">ARS</option><option value="AUD">AUD</option><option value="BDT">BDT</option><option value="BGL">BGL</option><option value="BGN">BGN</option><option value="BMD">BMD</option><option value="BOB">BOB</option><option value="BRL">BRL</option><option value="CAD">CAD</option><option value="CHF">CHF</option><option value="CLP">CLP</option><option value="CNY">CNY</option><option value="COP">COP</option><option value="CYP">CYP</option><option value="CZK">CZK</option><option value="DKK">DKK</option><option value="ECS">ECS</option><option value="EEK">EEK</option><option value="EGP">EGP</option><option value="EUR">EUR</option><option value="FIM">FIM</option><option value="GBP">GBP</option><option value="GHC">GHC</option><option value="HKD">HKD</option><option value="HRK">HRK</option><option value="HUF">HUF</option><option value="IDR">IDR</option><option value="ILS">ILS</option><option value="INR">INR</option><option value="ISK">ISK</option><option value="JOD">JOD</option><option value="JPY">JPY</option><option value="KES">KES</option><option value="KRW">KRW</option><option value="KWD">KWD</option><option value="KZT">KZT</option><option value="LBP">LBP</option><option value="LKR">LKR</option><option value="LTL">LTL</option><option value="LVL">LVL</option><option value="MAD">MAD</option><option value="MUR">MUR</option><option value="MXN">MXN</option><option value="MYR">MYR</option><option value="NGN">NGN</option><option value="NOK">NOK</option><option value="NZD">NZD</option><option value="PEN">PEN</option><option value="PGK">PGK</option><option value="PHP">PHP</option><option value="PKR">PKR</option><option value="PLN">PLN</option><option value="ROL">ROL</option><option value="RUB">RUB</option><option value="SEK">SEK</option><option value="SGD">SGD</option><option value="SIT">SIT</option><option value="SKK">SKK</option><option value="THB">THB</option><option value="TND">TND</option><option value="TRL">TRL</option><option value="TRY">TRY</option><option value="TWD">TWD</option><option value="TZS">TZS</option><option value="UAH">UAH</option><option value="USD" selected="selected">USD</option><option value="VEB">VEB</option><option value="VND">VND</option><option value="ZAR">ZAR</option><option value="ZWD">ZWD</option>

AedarsaudbTBGLBGNBMDBobbrlcDCZKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK

我为任何关心我的人找到了答案

问题是当我试图提交表格时。。。与下降无关

Sub GetData()

Dim IE As New InternetExplorer
Dim HTMLdoc As HTMLDocument

Dim allstatus As Object
Dim GetMTM As Object

Set IE = New InternetExplorer

IE.Visible = True
Application.DisplayAlerts = False

'go to MTM report
IE.navigate "wwww.mylink.com"

'check for good connection
Do Until Not IE.Busy And IE.readyState = 4
DoEvents
Loop
'wait for window to open
Application.Wait (Now + TimeValue("0.00:01"))

'send login information
SendKeys "blah", True
SendKeys "{TAB}", True
SendKeys "blah"
SendKeys "{TAB}", True
SendKeys "blah!"
SendKeys "{ENTER}", True

'check for good connection
Do Until Not IE.Busy And IE.readyState = 4
DoEvents
Loop
'wait for window to open
Application.Wait (Now + TimeValue("0.00:01"))

'all status
Set allstatus = IE.Document.getElementById("allstatus1")
allstatus.Click

Dim evt As Object
Dim ccy As Object

Set evt = IE.Document.createevent("HTMLEvents")
evt.initEvent "change", True, False
Set ccy = IE.Document.getElementById("currency")
ccy.Click
ccy.Value = "CAD"
ccy.dispatchEvent evt

'========this was the line i needed to fix!!!===========
'load data
IE.Document.getElementsByName("go")(0).Click
'========================================================

'check for good connection
Do Until Not IE.Busy And IE.readyState = 4
DoEvents
Loop
'wait for window to open
Application.Wait (Now + TimeValue("0.00:01"))

'download data
IE.Document.getElementsByName("download")(0).Click

Application.DisplayAlerts = True

End Sub

这也使用了类似的方法。我总是建议不要使用SendKeys,因为如果用户运行此程序时发生其他事件,则不能保证发送它们。谢谢@JimmySmith。我已经看到了这个链接,并尝试了该页面上的所有内容。。这些都不管用。我不知道;我不知道在这一点上还能做什么。。或者也许我错过了一个非常简单/明显的片段??你能分享你正在使用的页面吗?不幸的是,我不能分享链接。工作表只是一个数据表,在数据的顶部是一个下拉列表,可以让您选择我们想要数据的货币。我想问题可能出在这件事上。。也许更改不是我想要的事件?更新:因此,如果我手动从下拉列表中单击我想要的货币,然后查看源代码,源代码没有识别出该单击。。它仍然是旧的货币。源代码仅在我提交表单时更改