WinHttpRequest 在不同文件中使用代码时停止工作

Max*_*axF 1 excel vba

下面的代码在一个文件中完美运行,但是当我尝试在另一个文件中使用它时,出现错误“未定义用户定义的类型”并且突出显示了“http As New WinHttpRequest”。这可能是什么原因突然不起作用?

谢谢!

url = Links(2, j)
Dim http As New WinHttpRequest
http.Open "GET", url, False
http.send
Dim Resp As String: Resp = http.ResponseText
Run Code Online (Sandbox Code Playgroud)

Vit*_*ata 5

问题是该WinHttpRequest库没有添加到项目中,而在另一个 Excel 文件中。

WinHTTP从 VBE 菜单 > 工具 > 参考添加库:

在此处输入图片说明

上述方法称为早期绑定。下面的一个称为后期绑定

如果您想避免添加库并使用更慢的代码并且没有智能感知,请使用以下命令:

Dim http As Object
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
Run Code Online (Sandbox Code Playgroud)

然后简单地复制和粘贴这个将始终有效:

Sub TestMe()
    
    Dim http As Object
    Set http = CreateObject("WinHttp.WinHttpRequest.5.1")    
    http.Open "GET", "https://stackoverflow.com", False
    http.Send
    Debug.Print http.ResponseText

End Sub
Run Code Online (Sandbox Code Playgroud)