我的macros不会从networking查询返回所需的结果

该macros使用工作表中的LLC名称,并search网站(使用其API )以find最匹配的LLC,并将该公司的信息(特别是UBI)返回到工作表。

目前我的代码什么也没有返回,我为什么不知道。 这是我有…

Sub TEST()

Dim w As Worksheet Set w = ActiveSheet Dim Search As String Search = Range("E2") Dim url As String url = "http://www.sos.wa.gov/corps/search_results.aspx?name_type=contains&name=" & Search & "&format=json" Dim Http As New WinHttpRequest Http.Open "GET", url, False Http.Send Dim resp As String resp = Http.ResponseText Dim slines As String Dim Values As Variant Values = Split(resp, ",") For i = 0 To UBound(Values) slines = Values(i) w.Cells(i + 2, 20) = Replace(Values(1), Chr(34) & Chr(173) & Chr(176) & Chr(135) & Chr(133) & Chr(72), "") Next i End Sub 

这似乎是在处理返回的string的问题

来自URL的示例string

{“results”:{“Total”:“1”,“result”:[{“UBI”:“602024039”,“BusinessName”:“BEN LOMAND ASSOCIATES LLC”}]}}

预期结果

602024039

这是一个处理这个string的例子

 Sub TEST() Dim i As Long, j As Long Dim w As Range Dim Search As String Dim url As String Dim Http As New WinHttpRequest Dim resp As String Search = Range("E2") url = "http://www.sos.wa.gov/corps/search_results.aspx?name_type=contains&name=" & Search & "&format=json" Http.Open "GET", url, False Http.Send resp = Http.ResponseText Set w = ActiveCell i = InStr(resp, "{ ""UBI"":") Do While i > 0 resp = Mid$(resp, i) i = InStr(8, resp, """") j = InStr(i + 1, resp, """") w = Mid$(resp, i + 1, j - i - 1) i = InStr(2, resp, "{ ""UBI"":") Set w = w.Offset(1, 0) Loop End Sub 

正如在评论中提到的,有很多方法来处理string。 另一种使用Split可以

  Dim values() As String values = Split(resp, "{ ""UBI"": """) For i = 1 To UBound(values) j = InStr(values(i), """") w = Left$(values(i), j - 1) Set w = w.Offset(1, 0) Next 

我假设结果将返回到活动工作表,从活动单元格开始。 调整以适应您的需求。

也假定networkingsearch可以返回多个结果