我正在编写一个用于名为 Eve Online 的游戏的 Excel 电子表格。我的电子表格需要通过名为 eve-marketdata.com 的数据提供商网站自动检索数据。在 eve-marketdata 的开发者页面上:http ://eve-marketdata.com/developers/item_history2.php它提供了一些关于如何通过 http 发送“发布”请求来请求数据的说明。
例如:用于市场历史请求的 url 将是:http: //api.eve-marketdata.com/api/item_history2.xml?char_name= venoushka patel 然后,假设我想检索项目的 45 天数据id 34,来自区域 10000002。我将在 url 的末尾放置:item_id=34、days=45 和 region_ids=10000002,每个都由 & 符号分隔,用于:api.eve-marketdata.com/api/ item_history2.xml?char_name=venoushka patel&type_ids=34®ion_ids=10000002&days=45(由于本站发布规定删除了http://)
所以,我需要某些单元格来使用电子表格中的信息,例如项目 ID、区域 ID 等,以一起解析适当的 url,将 url 提交到站点,然后只获取我正在寻找的信息并放置它进入一个单元格。目前这在 google docs 而不是 excel 上要容易得多,因为它们的“importxml”功能利用了 xpath。但是,谷歌文档将每个电子表格的 xml 调用次数限制为 50,而我的电子表格将有几千个,所以我必须使用 excel。
不,我不会使用“从 Web 导入”或“将 xml 映射”到 Excel 中的单元格功能,因为我在电子表格中有数千个这些功能要做,而不是节省时间或资源。
有人告诉我,这可以使用以下 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。我知道如何打开 Visual Basic 编辑器,但仅此而已。首先:
我如何将它粘贴到 vba 编辑器中,然后在我的工作簿中调用它?我相信我必须在开头加上 function () 之类的东西,在结尾加上 end 函数,对吧?
我如何在我的工作表中调用这个函数来做我需要它做的事情?
有人可以解释上述代码的作用,以及我需要如何修改它来执行我的任务吗?
在此之前,我真的很感谢在这方面收到的任何帮助,并且社区中有很大一部分(成千上万的人)也需要一种方法来做到这一点!