【发布时间】:2022-01-21 16:20:30
【问题描述】:
我找到了一些关于同一主题的其他帖子,但没有明确的信息或没有回答,所以如果有人能帮助我解决这个问题,我将不胜感激。
我在 Excel 中的 VBA 代码上使用 RapidAPI,但无法使其正常工作,这让我很头疼。我正在尝试从 A 列中列出的域名中检索 WhoIs 信息,API 答案应该在 B 列中。谁能给我指点一下?
来源:https://rapidapi.com/jsonwhois.com/api/json-whois-screenshots-google-social-data/
Function GetWhoIs(DomainName As String)
Dim json, Url, params As String
Dim jsonObject, objHTTP, strResult, objetoJson As Object
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
Url = "https://jsonwhois.p.rapidapi.com/api/v1/whois/"
objHTTP.Open "GET", Url, False
objHTTP.setRequestHeader "authorization", "Token token=xxxxxxxxxxxxxxxxxx"
objHTTP.setRequestHeader "x-rapidapi-host", "jsonwhois.p.rapidapi.com"
objHTTP.setRequestHeader "x-rapidapi-key", "xxxxxxxxxxxxxxxxxxxxxxxx"
params = "domain=" + DomainName
objHTTP.Send (params)
strResult = objHTTP.responseText
json = strResult
Set objetoJson = JsonConverter.ParseJson(json)
GetWhoIs objetoJson
End Function
Sub combine()
Dim a As String
For Each a In Range("A2:A50")
If Not IsEmpty(a.Value) Then
Range("B" & Rows.Count).End(xlUp).Offset(1, 0) = GetWhoIs(a.Value)
Next a
End Sub
【问题讨论】:
-
你得到什么错误?
-
我在函数内部的“GetWhoIs objetoJson”上得到“ByRef 参数类型不匹配”。但实际上我不知道如何解决它,我已经尝试了很多东西,但没有任何结果。
-
你在哪一行得到这个错误?总是有助于提供有关您在代码中遇到的特定问题的详细信息。在 VBA 中仅供参考,如果您有一个以逗号分隔的变量列表,最后带有
... As XXX- 只有最后一个变量获得该 XXX 类型:其他所有变量都是 Variant。 -
GetWhoIs objetoJson正在调用函数递归地传递对象作为参数,而函数需要一个字符串。您可能想要删除该行并将上面的行更改为Set GetWhoIs= JsonConverter.ParseJson(json)。但是,您不能将对象写入需要从中提取数据的工作表。为此,您需要了解 Jason 字符串的结构。