使用Excel VBA在JavaScript Web中选择onchange值

时间:2015-04-25 11:54:19

标签: javascript excel vba web onchange

我是VBA的新手,我已多次尝试使用Excel VBA在网站上选择价值,但它不起作用。以下是我使用的代码。

实际上我不知道如何获取元素,因为它没有" id"或"名称"标签



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
&#13;
&#13;
&#13;

下面是HTML代码,我想将选项值更改为&#34;零&#34;当打开网站时,任何人都可以帮助检查并告知我可以使用什么VBA代码来获得价值&#34;零&#34;?非常感谢提前!

enter image description here

&#13;
&#13;
	<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">现金流量表</a></span>
              <span class=""><a href="#a4" target="_self">综合损益表</a></span>
              <em class="rt">报表类型:<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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

事实上,通过HTML nameid处理表单元素有时是有利的,但在您的示例中,您可以使用 getElementsByTagName()方法来解决{{ 1}}标签,即使它们没有名称或ID。

下面的代码会将所有select下拉菜单设置为&#34;零&#34;。我进行了简短的测试,结果很好。

select

答案 1 :(得分:1)

CSS选择器:

使用CSS选择器定位option[value='zero']

option标签的属性value的值为'zero'"[]"表示属性。


CSS查询:

css query


VBA:

您可以通过querySelector的{​​{1}}方法来应用选择器,即

只需选择

document

如果需要触发其他事件触发:

ie.document.querySelector("option[value='zero']").Selected = True