首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自HTTP的responseText表

来自HTTP的responseText表
EN

Stack Overflow用户
提问于 2020-03-05 20:12:50
回答 1查看 1.2K关注 0票数 0

我正在使用VBA,并试图使用HTTP请求从响应测试中创建一个表。这是我的代码:

代码语言:javascript
运行
复制
Set hReq = CreateObject("MSXML2.XMLHTTP")
    With hReq
        .Open "GET", "https://example.url.com/data", False
        .send
    End With

如果导航到URL,页面上唯一的条目是如下所示的CSV响应:

代码语言:javascript
运行
复制
name,ID,job,sector johndoe,1234,creator,sector1 janedoe,5678,worker,sector2

这将转换为一个包含4个列的表,它们分别命名为"name“、"ID”、"job“和”扇区“。我对VBA非常陌生,我很难理解如何将响应文本转换成表。但是我需要把它变成表格形式,这样我就可以处理列变量了。我可以将响应文本放到一个单元格中:

代码语言:javascript
运行
复制
Sheets("Sheet1").Range("A1").Value = hReq.responseText

但是,我不能将表转换成表格格式,所以我可以像处理表一样开始处理它。如果能将数据放入内存中的数组中,以便我可以使用VBA对其进行操作和分析,那就太好了,但是为了排除故障,将其放入Excel工作表也会很有帮助,这样我就可以再次检查我的编程了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-05 21:07:34

这将遍历您的头请求并将其发布到您喜欢的工作表:

代码语言:javascript
运行
复制
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

的结果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60553246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档