我正在寫一個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