无法获取特定数据点以从 Yahoo Finance 提取到 Excel?

Can't get specific data-point to pull from Yahoo Finance into Excel?

我正试图从 Yahoo Finance 页面中提取一个非常具体的数字,但我卡住了。我试图从中提取此信息的 link 是:

http://finance.yahoo.com/q/hp?s=AAPL+Historical+Prices

我想获取靠近该页面顶部以粗体显示的 111.31 号码。我已经编写了以下代码来提取此信息,但每次我 运行 时,它都会显示 "Object doesn't support this property or method"。我怀疑错误出在我使用 getElementsByClassgetElementsById 提取数据的行中。

    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

你们都可以看看,让我知道我哪里出错了,我该如何解决这个问题?

getElementsByClassName methodreturns一个或多个对象的集合。您需要提供集合中元素的索引(即 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