我想在Excel中使用VBA构建一个宏来从以下网站下载历史数据:
http://quickstats.nass.usda.gov/results/320F1D82-1064-30F1-809E-F77E509EC508
我首先像往常一样创建一个命令按钮。然后我认为这可以使用宏录制器轻松解决。但是,当我选择数据 - >获取外部数据 - >从Web然后输入上面的地址我无法选择整个表作为数据。
所以,我不确定如何执行此任务,但我觉得可能有某些标准代码,我无法找到,以完成任务。
我觉得这项任务对很多人都有用,因为从网站下载数据的脚本可以在各种地方使用。
答案 0 :(得分:5)
您可以尝试从"打印"下载表格,而不是尝试下载动态表格。而是表的版本。可打印表的URL是;
Blockquote http://quickstats.nass.usda.gov/results/320F1D82-1064-30F1-809E-F77E509EC508
和VBA;
mongo:
image: mongo
ports:
- 27017:27017
volumes:
- $HOME/Desktop/development/mongo/data/:/mnt/sda1/data/db/
- $HOME/Desktop/mongo/config/mongod.conf:/etc/mongod.conf.orig
command: mongod --smallfiles
我可以用宏下载表格。
答案 1 :(得分:3)
有很多方法可以使用VBA从网站获取数据。您可以使用InternetExplorer对象导航到它,并在您到达后解析HTML。您还可以使用MSXML2.XMLHTTP制作HTTP请求。特别是Excel有许多可以做到这一点的数据链接选项。
但是,在这里,我会使用UDSA为您提供的工具,并在一行中完成:
Workbooks.Open ("http://quickstats.nass.usda.gov/data/spreadsheet/4C43034A-0EAA-3171-B4FC-84CC95FC6E0C.csv")
编辑:回应下面Sandstone的问题,这里有一些代码可以将该工作簿中的数据复制到现有工作簿中。
Dim thisWb, downloadWb As Workbook
Set thisWb = ActiveWorkbook
Set downloadWb = Workbooks.Open("http://quickstats.nass.usda.gov/data/spreadsheet/4C43034A-0EAA-3171-B4FC-84CC95FC6E0C.csv")
downloadWb.Worksheets(1).Range("A1:U2613").Copy Destination:=thisWb.Worksheets(1).Range("A2")
downloadWb.Close
当然,您需要更改范围等,以匹配您需要的数据。