我需要帮助创建一个VBA宏,直接从Yahoo Finance的Historic Quotes网站下载收盘价数据,并将数据导入Excel电子表格列。
背景资料: 这是雅虎财经历史报价数据库的链接 -
要下载为TXT文件: http://ichart.finance.yahoo.com/table.txt?s= “StockTicker” &安培; d = “EndingMonth” 急症= “EndingDay” &安培; F = “EndingYear” &安培; G = d&安培; A = “EndingMonth” 和b = “EndingDay” 和C = “EndingYear” &安培;忽略= .TXT
格式化问题: 默认情况下,即使用Excel的Web数据导入向导,Excel将导入整个表,其中包含的列数多于所需的列数。我试图隔离“关闭”列。我创建了一个宏来格式化表以隔离“关闭”列,但是这个宏要求我手动从Yahoo Finance下载数据作为txt文件:
Sub Test_DownloadTextFile()
Dim text As String
'The variables for this URL (in light blue) should be retrieved from the spreadsheet, i.e. "StockTicker" will reference a cell with the ticker symbol "AAPL" in it and that will appear in the URL'
text = DownloadTextFile("http://ichart.finance.yahoo.com/table.txt?s="StockTicker"&d="EndingMonth"&e="EndingDay"&f="EndingYear"&g=d&a="EndingMonth"&b="EndingDay"&c="EndingYear"&ignore=.txt")
'At this point I should have the historical quotes table stored in the variable text. How do I select the 4th column and import it into a specific spreadsheet column?'
Debug.Print text
End Sub
如何创建一个宏: 1.参考关键变量的电子表格,例如“StockTicker”,“EndingMonth”等。 2.从Yahoo Finance下载相应的历史数据 3.将数据收盘价格数据作为单个列导入电子表格
我非常感谢这个问题的实际解决方案。如果我需要澄清我的问题或手头的任务,请告诉我。谢谢!
答案 0 :(得分:2)
建议:这似乎是Web查询的完美案例 你有什么理由不使用它吗?您可以只复制之后需要的列。 您没有指定Excel版本,但在2003年它是在数据/导入外部数据上。
答案 1 :(得分:1)
结帐this SO discussion。一些似乎值得的建议。