我正在写一个excel电子表格,以便与称为Eve Online的游戏一起使用。我的电子表格需要通过名为eve-marketdata.com的数据提供商网站自动检索数据。在eve-marketdata的开发者页面上:http://eve-marketdata.com/developers/item_history2.php它提供了一些关于如何通过http发送“发布”请求来请求数据的说明。试图通过excel从网站检索xml数据
例如:用于市场历史请求的网址应该是:http://api.eve-marketdata.com/api/item_history2.xml?char_name=venoushka patel然后,可以说我想从区域10000002中检索物品ID为34的45天的数据。我将放在网址的结尾处:item_id = 34,days = 45和region_ids = 10000002,每个由&符号表示的完成产品符号:api.eve-marketdata.com/api/item_history2.xml?char_name=venoushka patel & type_ids = 34 & region_ids = 10000002 & days = 45(由于本网站发布规定,删除了http://)
因此,我需要某些单元格使用电子表格中的信息(例如item id,region id等)来解析适当将网址提交给网站,然后只抓取我正在查找的信息并将其放入单元格中。这在google文档中比在excel中容易得多,因为它们使用xpath的'importxml'特性。然而,谷歌文档限制XML电话数量为每个电子表格50和我的电子表格将有几千,所以我必须使用Excel。
不,我不打算在excel中使用'从网络导入'或'映射xml'到单元格功能,因为我在电子表格中有数以千计的这些功能,而不是时间或资源效率。
有人告诉我,这可以使用下面的VBA代码来完成:
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://www.somedomain.com"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("")
的问题是,虽然我在编程很好的Excel电子表格,我从来没有使用VBA。我知道如何打开视觉基本编辑器,但这是关于它的。首先:
我该如何将其粘贴到vba编辑器中,然后在我的工作簿中调用它?我相信我必须在开始和结束函数中放入类似function()的东西,对吗?
如何在我的工作表中调用此函数来完成我需要的功能?
有人可以解释上面的代码是做什么的,以及我需要如何修改它来执行我的任务?
在进步,我真的很感激这些接收的任何帮助,并有社区(千在那里),需要一种方式来做到这一点,以及庞大的一部分!
你确定你一定要使用POST请求您的VBA的牙齿?您似乎正在描述GET请求。见http://www.w3schools.com/tags/ref_httpmethods.asp – barrowc