Vous ne pouvez pas get un sharepoint données spécifique à tirer de Yahoo Finance dans Excel?

J'essaie d'extraire un nombre très spécifique de la page Yahoo Finance mais je me suis coincé. Le lien sur lequel j'essaie de tirer cette information est:

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

Je m'intéresse à get le numéro 111.31 qui est répertorié près du haut de cette page en gras. J'ai écrit le code suivant pour extraire cette information, mais chaque fois que je l'exécute, il dit que «Objet ne supporte pas cette propriété ou cette méthode». Je soupçonne que l'erreur réside dans la ligne où j'utilise getElementsByClass et getElementsById pour extraire ces données.

  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 

Pouvez-vous, tout le monde, jeter un oeil et me faire savoir où j'ai mal tourné et comment je peux réparer cela?

La méthode getElementsByClassName renvoie une collection d'un ou plusieurs objects. Vous devez fournir l'index (c'est-à-dire la position ) de l'élément dans la collection. Essayer,

 Sheets("Sheet1").Range("A3") = .getElementsByClass("time_rtq_ticker")(0).getElementById("yfs_184_aapl").innerText 

En fait, l'identifiant yfs_184_aapl est unique sur cette page. Vous avez seulement besoin,

 Sheets("Sheet1").Range("A3") = .getElementById("yfs_184_aapl").innerText 

Notez que la méthode getElementById est singulière, pas getElementsById .