从Excel VBA向HTTP请求添加哪些引用

Nun*_*ira 5 excel vba excel-vba

我正在从Excel VBA构建OAuth2.0身份验证工具。

这些是我正在使用的参考:

在此处输入图片说明

但是,在在线编译时代码会中断:

Private objXMLRequest As MSXML2.ServerXMLHTTP
Run Code Online (Sandbox Code Playgroud)

我尝试以管理员身份从命令窗口运行:

regsvr32.exe "c:\windows\system32\winhttp.dll"
Run Code Online (Sandbox Code Playgroud)

和:

regsvr32.exe "c:\windows\system32\winhttpcom.dll"
Run Code Online (Sandbox Code Playgroud)

但是它们都返回错误:

RegSvr32 - Entry point DllRegisterServer not found.
Run Code Online (Sandbox Code Playgroud)

Axe*_*ter 5

您必须参考Microsoft XML, v 3.0

请参阅:https : //msdn.microsoft.com/zh-cn/library/ms763701%28v=vs.85%29.aspx

Microsoft XML, v 6.0必须带有类型MSXML2.ServerXMLHTTP60


Mig*_*ues 5

测试一下很有用:

Sub Testa()
 Dim aTests: aTests = Array( _
        "Microsoft.XMLHTTP" _
      , "Msxml2.XMLHTTP" _
      , "Msxml2.XMLHTTP.3.0" _
      , "Msxml2.XMLHTTP.4.0" _
      , "Msxml2.XMLHTTP.5.0" _
      , "Msxml2.XMLHTTP.6.0" _
      , "Microsoft.XMLHTTP.6.0" _
      , "Msxml2.XMLHTTP.7.0" _
 )
 Dim sProgId, sTypeName
 For Each sProgId In aTests
     Dim oX
   On Error Resume Next
     Set oX = CreateObject(sProgId)
     If 0 = Err.Number Then
        sTypeName = TypeName(oX)
     Else
        sTypeName = Err.Description
     End If
   On Error GoTo 0
     MsgBox sProgId + "=>" + sTypeName
 Next
End Sub
Run Code Online (Sandbox Code Playgroud)