在 Google Docs 电子表格中,我可以使用以下单元格公式:
=GoogleFinance("GOOG", "price")
下载股票的最新价格。Excel 2013 中是否有等效函数?
早期版本的 Excel 有一个智能标签功能它会下载每只股票的大量数据(事实上,如果你只需要价格的话,那太多了),而且我看到一些资料表明Bing 财经应用适用于 Excel 2013。遗憾的是,该功能已停止使用。
有没有简单的方法可以做到这一点?我实际上只需要最新的价格,我不在乎它是否延迟,来自雅虎财经等。大概我可以编写 VBA 代码从 YF 下载 CSV 文件,解析它等等,但我希望避免创建启用宏的工作簿。
答案1
您可以使用这样的 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
现在您可以使用GetTickerPrice("GOOG")
并获取当前价格。
我确实把这个交给代码审查获取一些输入。
答案2
答案3
有一个名为的插件Excel 2013 股票报价插件它可以做到这一点,并且有一个适用于 2013 年的版本。就我个人而言,我无法让它工作,但它已经存在几年了,所以可能只是我的问题。