使用Excel VBA在JavaScript web中selectonchange值

我对VBA很新,我已经尝试了很多次,使用Excel VBA来select网站上的值,但是它不起作用。 以下是我使用的代码。

其实我不知道如何得到元素,因为它没有“id”或“name”标签。

Sub GetFinanceData() Dim URL As String URL = "http://stock.finance.sina.com.cn/hkstock/finance/00001.html" Set myIE = CreateObject("InternetExplorer.Application") With myIE .navigate URL .Visible = True Do While .Busy = True Or .readyState <> 4 Loop DoEvents .Document.parentWindow.execScript "selectData(zero);", "JavaScript" End With End Sub 

下面是HTML代码,打开网站时我想把选项值改为“零”,任何人都可以帮忙查看和build议我可以用什么VBA代码来得到值“零”? 提前感谢!

在这里输入图像说明

  <a name="a1" id="a1"></a> <div class="part02"> <div class="sub01"> <div class="sub01_tt fblue"> <span class=" selected"><a href="#a1" target="_self">重要财务指标</a></span> <span class=""><a href="#a2" target="_self">资产负债表</a></span> <span class=""><a href="#a3" target="_self">现金stream量表</a></span> <span class=""><a href="#a4" target="_self">综合损益表</a></span> <em class="rt">报表types:<select class="fgrey" style="width:100px;" interface="getFinanceStandardForjs?symbol=$symbol&financeStanderd=" table="tableGetFinanceStandard" onchange="selectData(this);"> <option value="all" >全部</option> <option value="zero" >年报</option> <option value="1" >中报</option> <option value="2" >一季报</option> <option value="3" >三季报</option> </select></em> </div> <div class="sub01_cc"> <div class="sub01_c"> <table cellspacing="0" cellpadding="0" border="0" class="tab05"> <tbody id="tableGetFinanceStandard"> <tr> 

实际上,通过HTML nameid来寻址表单元素有时是有利的,但在您的示例中,您可以使用getElementsByTagName()方法来处理select标记,即使它们没有名称或标识。

下面的代码将所有select下拉菜单设置为“零”。 我testing了一下,它工作得很好。

 Sub GetFinanceData() Dim URL As String URL = "http://stock.finance.sina.com.cn/hkstock/finance/00001.html" Set myIE = CreateObject("InternetExplorer.Application") With myIE .navigate URL .Visible = True Do While .Busy = True Or .readyState <> 4 Loop DoEvents Set selectItems = myIE.document.getElementsByTagName("select") For Each i In selectItems i.Value = "zero" i.FireEvent ("onchange") Next i End With End Sub