【发布时间】:2015-11-08 23:42:37
【问题描述】:
使用 Visual Basic,我试图从 Yahoo! 中提取“最后交易日期”数据。通过在 Excel 中引用股票代码的 CSV 财务 API。
Yahoo! Finance API 最后交易日期作为“&f=d1”附加到 URL 中,其中 ticker 被替换为任何证券交易所在 Excel(即 GOOG、GE)中将符号传递给 StockQuote()。
当在单元格中输入股票代码,然后使用 StockQuote() 引用该单元格时,我收到 #VALUE! 错误。
#VALUE! Excel 中的错误截图
我意识到对 StockQuote() 函数使用 As Double 数据类型可能不适合检索日期数据。在我当前的代码块中将 Double 替换为 Integer、Long 和 Date 数据类型会产生 #VALUE!错误也是如此。
我正在处理启用宏的工作表,并将 Visual Basic 代码放在模块中。
有人能解释#VALUE 的来源吗?错误以及我如何修改下面的代码以在使用 Yahoo! 时检索给定股票代码的最后交易日期!金融 API?
Option Explicit
Function StockQuote(ByVal ticker As String) As Double
Dim url As String
Dim lastDate As Double
Dim http As Object
url = "http://download.finance.yahoo.com/d/quotes.csv?s=" & ticker & "&f=d1"
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", url, False
http.Send
StockQuote = http.responseText
Set http = Nothing
End Function
【问题讨论】:
标签: vba excel yahoo-finance