Web上にXMLデータがあります。Excel VBA XML Webクエリから複数のセルに値を返す
: A B
1 ItemID buy/max
2 34 =ImportXML("https:// ... &typeid=34", "//buy/max")
3 35
機能は、次のようになります。SINGLE値(例えば、最も高い買い注文)を取得するための関数の
https://api.eve-central.com/api/marketstat?regionlimit=10000002&typeid=34
起動:これらは、価格とゲームアイテム内の価格データです
Function ImportXML(url As String, query As String)
Dim document As MSXML2.DOMDocument60
Dim http As New MSXML2.XMLHTTP60
http.Open "GET", url, False
http.send
Set document = http.responseXML
ImportXML = document.SelectSingleNode(query).nodeTypedValue
End Function
1つの値で問題ありません。私が500アイテムを持っていれば、データを取得する時間は非常に長くなります。 は、複数のセルを移入するには(この場合は2つだけで)私たちは&型IDを追加することにより、入力リンクを変更する必要がある= 35:そのリンクで
https://api.eve-central.com/api/marketstat?regionlimit=10000002&typeid=34&typeid=35
私はのMsgBoxに2つの値を得ることができます。しかし、私はそのデータに取り組む必要があるので、セル内にそれが必要ですB3。 今のコードは次のようになります。私は、細胞内にクエリからのデータを書き込むしようとしているときに
Function ImportXML(url As String, query As String)
Dim document As MSXML2.DOMDocument60
Dim http As New MSXML2.XMLHTTP60
http.Open "GET", url, False
http.send
Set document = http.responseXML
Dim R As Integer
Dim C As Integer
R = ActiveCell.Row '<- these variables are for changing'
C = ActiveCell.Column '<- output cell'
Set xmlNodeList = document.SelectNodes(query)
For Each xmlNode In xmlNodeList
Cells(R, C) = xmlNode.nodeTypedValue '<- THIS LINE CAUSE AN ERROR'
'MsgBox xmlNode.nodeTypedValue <- if that line is active I got correct result'
R = R + 1 'but in MsgBox'
Next xmlNode
End Function
問題があります。私が達成しようとしている何 はGoogleスプレッドシートWebサービスからIMPORTXML機能に同様の現象です。 私はExcel 2013を持っていないので、WEBSERVICE機能またはFILTERXMLおよびXPathを使用することはできません。 私はVBAで決してコードしていません。 ここに最終コードを書くことができれば、私は感謝しています。あなたの行がエラーを与えるため