为什么我在简单的url调用上得到“Argument is optional”错误?

时间:2018-02-05 10:07:14

标签: vba connection

我的目标是在VBA中检查互联网连接,但是当我尝试使用request.open调用网址时,我收到错误消息“参数不是可选的”。

可悲的是,互联网研究没有取得任何成果。

这是我的代码:

On Error GoTo NoConnectionErrorHandling
    Dim Request As MSXML2.XMLHTTP60
    Request.Open "http://www.google.com"
    Request.send
    MsgBox Request.Status

它挂起在显示代码的第三行。 我希望有人可以帮助我,因为我对VBA的经验非常少。

1 个答案:

答案 0 :(得分:2)

您必须指定请求的类型。它可以是“GET”,“POST”或其他东西。

请参阅此处了解开放方法: https://msdn.microsoft.com/en-us/library/ms757849(v=vs.85).aspx

这些是参数:

  • <强> bstrMethod 用于打开连接的HTTP方法,例如GET,POST,PUT或PROPFIND。对于XMLHTTP,此参数不区分大小写。当IXMLHTTPRequest在浏览器中托管时,不允许使用动词TRACE和TRACK。 What is the difference between POST and GET?

  • <强> bstrUrl 请求的URL。这可以是绝对URL,例如“http://Myserver/Mypath/Myfile.asp”,也可以是相对URL,例如“../ MyPath / MyFile.asp”。

  • varAsync [可选]

  • bstrUser [可选]

  • bstrPassword [可选]

如您所见,该方法至少需要两个参数(其他3个是可选的)因此1是不够的。

您需要使用关键字Request声明New。因此,像下面这样的东西可以工作:

Public Sub TestMe()    
    Dim Request As New MSXML2.XMLHTTP60
    Request.Open "GET", "http://www.bbc.com"
    Request.send
    MsgBox Request.Status    
End Sub

每当您使用标准VBA库之外的库时,最好执行以下2之一:

  • 提供图书馆的信息:

enter image description here

  • 使用后期绑定:
Dim Request As Object
Set Request = CreateObject("Msxml2.ServerXMLHTTP.6.0")