我正在使用VBA,并试图使用HTTP请求从响应测试中创建一个表。这是我的代码:
Set hReq = CreateObject("MSXML2.XMLHTTP")
With hReq
.Open "GET", "https://example.url.com/data", False
.send
End With
如果导航到URL,页面上唯一的条目是如下所示的CSV响应:
name,ID,job,sector johndoe,1234,creator,sector1 janedoe,5678,worker,sector2
这将转换为一个包含4个列的表,它们分别命名为"name“、"ID”、"job“和”扇区“。我对VBA非常陌生,我很难理解如何将响应文本转换成表。但是我需要把它变成表格形式,这样我就可以处理列变量了。我可以将响应文本放到一个单元格中:
Sheets("Sheet1").Range("A1").Value = hReq.responseText
但是,我不能将表转换成表格格式,所以我可以像处理表一样开始处理它。如果能将数据放入内存中的数组中,以便我可以使用VBA对其进行操作和分析,那就太好了,但是为了排除故障,将其放入Excel工作表也会很有帮助,这样我就可以再次检查我的编程了。
发布于 2020-03-05 21:07:34
这将遍历您的头请求并将其发布到您喜欢的工作表:
Sub test()
Dim RespArray() As String
Dim RespArray2() As String
Dim i, i2 As Long
Set hReq = CreateObject("MSXML2.XMLHTTP")
With hReq
.Open "GET", "https://example.url.com/data", False
.send
End With
' split the data into larger pieces
RespArray() = Split(hReq.responseText, " ")
' loop through first array to break it down line by line
For i = LBound(RespArray) To UBound(RespArray)
' split each line into individual pieces
RespArray2() = Split(RespArray(i), ",")
' loop through second array and add to Sheet1
For i2 = LBound(RespArray2) To UBound(RespArray2)
Worksheets("Sheet1").Cells(i + 1, i2 + 1).Value = RespArray2(i2)
Next i2
Next i
End Sub
的结果
https://stackoverflow.com/questions/60553246
复制相似问题