Wie lade ich einen Aktienkurs in Excel 2013 herunter? Gibt es eine Entsprechung zur GoogleFinance-Tabellenkalkulationsfunktion von Google Doc?

8

In einer Google Text & Tabellen-Tabelle kann ich die folgende Zellformel verwenden:

=GoogleFinance("GOOG", "price")

um den neuesten Kurs einer Aktie herunterzuladen. Gibt es eine äquivalente Funktion in Excel 2013?

Frühere Versionen von Excel hatten eine Smart-Tag-Funktion , mit der eine Menge Daten für jeden Ticker heruntergeladen wurden (zu viel, wenn Sie nur den Preis benötigen), und ich habe Quellen gesehen, die die Bing Finance-App für Excel 2013 vorschlagen . Leider Dies wurde eingestellt.

Gibt es eine einfache Möglichkeit, dies zu tun? Ich brauche buchstäblich nur den neuesten Preis, und es ist mir egal, ob er sich verzögert, von Yahoo Finance stammt usw. Vermutlich könnte ich VBA-Code schreiben, um eine CSV-Datei von YF herunterzuladen, zu analysieren und so weiter, aber ich bin es in der Hoffnung, das Erstellen einer makrofähigen Arbeitsmappe zu vermeiden.

Michael A.
quelle
Dies ist keine Funktion, die Excel
sofort
1
Wurde data - existing connection - MSN MoneyCentral Investory Stock Quotesdies in Excel 2007/2010 für 2013 entfernt? bearbeiten - ja, es sieht so aus, als ob es entfernt wurde und die Bing Finance App ist der "Ersatz". Sie könnten eine data - from webAbfrage für MSN-Geld einrichten , aber das wäre mühsam.
Raystafarian
@ Raystafarian Wie würde ich eine neue Datenabfrage einrichten?
Michael A
Es scheint, dass Sie möglicherweise Power Query in 2013 Quelle verwenden müssen
Raystafarian
1
@harrymc Ich bin nicht der OP, aber ich denke, die wertvollste Antwort wäre etwas, das vorhandene Funktionen in Excel 2013 nutzt und / oder kostenlos ist.
Excellll

Antworten:

5

Sie können eine UDF wie diese verwenden -

Option Explicit

Public Function GetTickerPrice(ByVal ticker As String) As Double

    Dim IE As Object
    Dim pageData As Object

    Set IE = CreateObject("InternetExplorer.Application")
    Dim URL As String
    URL = "http://www.msn.com/en-us/money/stockdetails/fi-126.1." & ticker & ".NAS?symbol=" & ticker & "=PRFIMQ"

    IE.Navigate URL

     Do Until IE.ReadyState >= 4
            DoEvents
     Loop

     Application.Wait Now + TimeSerial(0, 0, 5)

     Set pageData = IE.document

     GetTickerPrice = pageData.getElementsByClassName("precurrentvalue")(0).innertext

     Set IE = Nothing
     Set pageData = Nothing
End Function

Jetzt können Sie GetTickerPrice("GOOG")den aktuellen Preis verwenden und abrufen.


Ich habe dies für einige Eingaben zu Codereview.SE übernommen .

Raystafarian
quelle
2
Wäre es nicht am besten, als Double statt als Long zu formatieren, damit Sie die Dezimalinformationen nicht verlieren? Dann kann der Endbenutzer entscheiden, ob er es abrunden möchte.
Jonno
Danke, das funktioniert! Aber es ist sehr langsam - ungefähr 20 Sekunden, um einen Aktienkurs zu erhalten. Ich gehe davon aus, dass ich den IE öffne und die URL lade, da gibt es Engpässe. Gibt es überhaupt etwas zu umgehen?
Excellll
@ Jonno ja, ich sehe, Excellll hat die Änderung vorgenommen
Raystafarian
@Excellll Ich werde versuchen zu sehen, ob es einen Weg gibt, der den IE möglicherweise zum Schweigen bringt, aber wenn wir keine Datenbank finden, wie sie früher war, stecken wir möglicherweise fest (zumindest für ältere Excel-Versionen).
Raystafarian
1
@Excellll gibt es eine ziemlich anständige Antwort bei CodeReview auf meinen Ansatz. Es scheint so unterschiedlich zu sein, dass es nicht als meine Antwort angesehen wird.
Raystafarian
-1

Es gibt ein Add-In namens Stock Quote Add-In für Excel 2013, das dies tut und eine Version für 2013 hat. Persönlich konnte ich es nicht zum Laufen bringen, aber es gibt es schon seit ein paar Jahren, also war es wahrscheinlich nur ich .

Jeremy Shaw
quelle
2
Willkommen bei Super User. Dies hilft zwar bei der Beantwortung der Frage, aber könnten Sie möglicherweise Informationen darüber hinzufügen, wie dieses Plugin verwendet werden soll?
LJD200