Excel VBA:如何提取定义日期范围内的yahoo finance历史数据

Excel VBA:如何提取定义日期范围内的yahoo finance历史数据,vba,excel,yahoo,yahoo-finance,Vba,Excel,Yahoo,Yahoo Finance,第一次在这里发布。我需要以下问题的帮助 我从雅虎财经网站Excel VBA的url中提取历史价格。我得到了一个用于股票代码的可变单元格,数据的开始日期和结束日期。我将url转换为获取这些单元格的值以获取数据 问题:宏从“ticker”变量单元格提取数据,但它没有给出我在“开始/结束日期”变量单元格中定义的日期范围。相反,它给了我全部的历史数据 原始链接 http://chart.finance.yahoo.com/table.csv?s=NVDA&a=3&b=15&c=2

第一次在这里发布。我需要以下问题的帮助

我从雅虎财经网站Excel VBA的url中提取历史价格。我得到了一个用于股票代码的可变单元格,数据的开始日期和结束日期。我将url转换为获取这些单元格的值以获取数据

问题:宏从“ticker”变量单元格提取数据,但它没有给出我在“开始/结束日期”变量单元格中定义的日期范围。相反,它给了我全部的历史数据

原始链接

http://chart.finance.yahoo.com/table.csv?s=NVDA&a=3&b=15&c=2012&d=3&e=15&f=2017&g=m&ignore=.csv
转换链路

http://chart.finance.yahoo.com/table.csv?s= " & Tick1 & " &a= " & smonth & " &b= " & sday & " &c= " & syear & " &d= " & emonth & " &e= " & eday & " &f= " & eyear & " &g=m&ignore=.csv


您应该检查宏用于连接雅虎财经的URL

您可以通过在ActiveSheet.QueryTables.Add之前添加此行来实现这一点

当你看到你试图打开的实际链接时,你会意识到你有很多实际上不需要的空格字符。 每个引号前后都有一个空白字符,不需要它们。 改变这一点,你的问题就会得到解决

正确的行应该是:

"TEXT;http://chart.finance.yahoo.com/table.csv?s=" & Tick1 & "&a=" & smonth & "&b=" & sday & "&c=" & syear & "&d=" & emonth & "&e=" & eday & "&f=" & eyear & "&g=m&ignore=.csv", _
另外,我不知道你为什么用一个月减去一作为开始/结束日期

smonth=月份(范围(“b2”)-1


如果使用1月份的日期,则无法正常工作。

可能是B2和B3单元格格式。如果这些单元格是“常规”单元格,并且输入的字符串是mm/dd/yyyy,则应该可以使用。此外,excel表示未定义“xlOverwriteDeleteCells”。日期单元格格式为mm/dd/yyyy,仍然不起作用。我也编辑了我的文章,包括整个程序,很抱歉。你为什么在两个URL中都包含星号?删除它们和空格会使第一个链接很好。@Parfait my bad它们是我们在编辑原始文章时错误放置的。有人知道xlOverwriteDeleteCells未定义的解决方案是什么吗。参考图书馆不见了?非常感谢。正如你所说的空白字符,我们阻止了日期范围的应用。关于这个月的负1,我的老师告诉我,Excel将1月视为0月,所以他说要加-1,老实说,我自己并不这么认为。但这似乎有些奏效。非常感谢你的帮助。
MsgBox ("http://chart.finance.yahoo.com/table.csv?s= " & Tick1 & " &a= " & smonth & " &b= " & sday & " &c= " & syear & " &d= " & emonth & " &e= " & eday & " &f= " & eyear & " &g=m&ignore=.csv")
"TEXT;http://chart.finance.yahoo.com/table.csv?s=" & Tick1 & "&a=" & smonth & "&b=" & sday & "&c=" & syear & "&d=" & emonth & "&e=" & eday & "&f=" & eyear & "&g=m&ignore=.csv", _