我的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可以返回多个结果