如何在 Excel 2013 中下载股票价格?是否有相当于 Google Doc 的 GoogleFinance 电子表格功能?

Mic*_*l A 8 vba worksheet-function microsoft-excel microsoft-excel-2013

在 Google Docs 电子表格中,我可以使用以下单元格公式:

=GoogleFinance("GOOG", "price")
Run Code Online (Sandbox Code Playgroud)

下载股票的最新价格。Excel 2013 中是否有等效功能?

早期版本的 Excel 有一个智能标签功能,可以为每个代码下载大量数据(实际上,如果您只需要价格,那就太多了),而且我看到一些消息来源建议使用Excel 2013的Bing Finance 应用程序。不幸的是这已停止。

有没有一种简单的方法可以做到这一点?我真的只需要最新的价格,我不在乎它是否延迟,来自雅虎财经等。大概我可以编写 VBA 代码从 YF 下载 CSV 文件,解析它等等,但我希望避免创建启用宏的工作簿。

Ray*_*ian 5

您可以使用这样的 UDF -

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
Run Code Online (Sandbox Code Playgroud)

现在您可以使用GetTickerPrice("GOOG")并获取当前价格。


我确实将其转移到Codereview.SE以获得一些输入。

  • 最好将格式设置为 Double 而不是 Long,这样您就不会丢失十进制信息吗?然后最终用户可以决定是否要舍入它。 (2认同)