我试图从雅虎财经页面中提取一个非常具体的数字,但我遇到了问题。我试图从中获取此信息的链接是:
我有兴趣以粗体显示该页面顶部附近列出的 111.31 数字。我已经编写了以下代码来提取这些信息,但每次运行它时都会说“对象不支持此属性或方法”#34;。我怀疑错误在于我使用getElementsByClass
和getElementsById
来提取数据的行。
Sub GetQuote()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.navigate "http://finance.yahoo.com/q/hp?s=AAPL+Historical+Prices"
Do While .busy: DoEvents: Loop
Do While .ReadyState <> 4: DoEvents: Loop
With .document
Application.Wait (Now + #12:00:05 AM#)
Sheets("Sheet1").Range("A3") = .getElementsByClass("time_rtq_ticker").getElementsById("yfs_184_aapl").innerText
End With
End With
Set IE = Nothing
End Sub
请大家看一下,让我知道我哪里出错了,我该如何解决这个问题?
答案 0 :(得分:0)
getElementsByClassName method会返回一个或多个对象的集合。您需要提供集合中元素的索引(即 position )。尝试,
Sheets("Sheet1").Range("A3") = .getElementsByClass("time_rtq_ticker")(0).getElementById("yfs_184_aapl").innerText
事实上,yfs_184_aapl
ID在该页面上是唯一的。你只需要,
Sheets("Sheet1").Range("A3") = .getElementById("yfs_184_aapl").innerText
请注意,getElementById method是单数,而不是getElementsById
。