VBA在填写下拉列表并提交搜索后检索HTML Web数据

我是excel vba脚本编写HTML数据的新手。

我需要从中下载数据的网站是http://www.hkexnews.hk/sdw/sea​​rch/mutualmarket.aspx?t=hk%2f%3f

我的目标是自动将下拉列表更改为特定日期,并下载当天的库存相关数据。

我设法编写代码来更改下拉值(即日期和持股日期)并自动激活搜索function。 但是当它试图读取该特定值时,它会从网站返回一个“未刷新”的值。 现在,我只是测试一个数据点以使我的代码运行得更快 – .getElementById("pnlResult").getElementsByTagName("div")(0).innerText

在下面的代码中,我试图获得“持股日期:22/08/2017”的价值,但它目前正在返回“持股日期:11/11/2017”,即使IE窗口显示为22/08 / 2017年。

非常感谢您的帮助! 谢谢!

 Private Sub downloadfromhkex() Cells.Clear '**LOAD website on IE Dim IE As New InternetExplorer IE.Visible = True IE.navigate "http://www.hkexnews.hk/sdw/search/mutualmarket.aspx?t=hk/?" Do DoEvents Loop Until IE.readyState = READYSTATE_COMPLETE '***END '**Dim Doc As HTMLDocument Dim doc As HTMLDocument Set doc = IE.document Dim objEvent Set objEvent = doc.createEvent("HTMLEvents") objEvent.initEvent "change", True, False doc.getElementById("ddlShareholdingDay").selectedIndex = 21 doc.getElementById("ddlShareholdingDay").dispatchEvent objEvent doc.getElementById("ddlShareholdingMonth").selectedIndex = 7 doc.getElementById("ddlShareholdingMonth").dispatchEvent objEvent doc.getElementById("ddlShareholdingYear").selectedIndex = 0 doc.getElementById("ddlShareholdingYear").dispatchEvent objEvent 'wait for 1s Application.Wait Now + TimeSerial(0, 0, 1) doc.parentWindow.execScript "$('#preprocessMutualMarketMainForm')", "JavaScript" doc.getElementById("btnSearch").Focus doc.getElementById("btnSearch").Click Application.Wait Now + TimeSerial(0, 0, 5) '***END '**Get the date of this holding report Application.Wait Now + TimeSerial(0, 0, 2) Cells.Clear Dim Datemark As String Datemark = Trim(doc.getElementById("pnlResult").getElementsByTagName("div") (0).innerText) Sheets(1).Range("A1").Select Sheets(1).Range("A1").Value = Datemark '***END End Sub