2016-07-30 138 views
0

搜索按钮,这个小脚本应该去的网站 http://finra-markets.morningstar.com/BondCenter/Default.jsp运行时错误91宏打在网站上的Excel VBA

插入选项卡“搜索”的"Symbol/Cusip"箱内数量111320AE7并点击在"Show Results"按钮上获得结果。

Sub SearchSite() 
    Dim beta 
    Dim objIE As InternetExplorer 
    Set objIE = New InternetExplorer 

    objIE.Visible = True 
    objIE.navigate "http://finra-markets.morningstar.com/BondCenter/Default.jsp" 

    Do While objIE.Busy = True Or objIE.readyState <> 4 
     DoEvents 
    Loop 
    objIE.document.getElementById("firscreener-cusip").Value = "111320AE7" 

    Set beta = objIE.document.getElementsByClassName("ms-finra-advanced-search-btn")(1) 

    beta.Click 

    Do While objIE.Busy = True Or objIE.readyState <> 4 
     DoEvents 
    Loop 
    'objIE.Quit 

End Sub 

我得到运行时错误91: Object variable or With block variable not set

的问题似乎是beta.click线

我希望得到一些帮助。 非常感谢。

+0

如果你在线上放置了一个断点并调试了你的代码,那么我认为你会发现'beta'没什么。问题将出现在设置“beta”的前一行。解决这个问题,你会好起来的, – DeanOC

回答

0

Beta引用包含按钮的div。元素数组以0为底。它们从0开始不为1.

Sub SearchSite() 
    Dim beta, buttons, btnReset, btnSubmit 
    Dim objIE As InternetExplorer 
    Set objIE = New InternetExplorer 

    objIE.Visible = True 
    objIE.navigate "http://finra-markets.morningstar.com/BondCenter/Default.jsp" 

    Do While objIE.Busy = True Or objIE.readyState <> 4 

    Loop 

    objIE.document.getElementById("firscreener-cusip").Value = "111320AE7" 

    Set beta = objIE.document.getElementsByClassName("ms-finra-advanced-search-btn")(0) 

' <div class="ms-finra-advanced-search-btn"> 
'  <input class="button_blue" value="CLEAR CRITERIA" type="reset"> 
'  <input class="button_blue" value="SHOW RESULTS" type="submit"> 
' </div> 

    Set buttons = beta.GetElementsByTagName("input") 

    WScript.Echo buttons(0).outerHTML 

' <input class="button_blue" value="CLEAR CRITERIA" type="reset"> 

    Set btnReset = buttons(0) 

' <input class="button_blue" value="SHOW RESULTS" type="submit"> 

    Set btnSubmit = buttons(0) 


    beta.btnSubmit 

    Do While objIE.Busy = True Or objIE.readyState <> 4 

    Loop 
    objIE.Quit 

End Sub 
+0

很好的帮助!非常感谢! – aeb30