vbscript在excel中运行但在记事本中没有

时间:2016-02-16 06:10:40

标签: excel excel-vba vbscript vba

以下脚本在excel中成功运行,但在通过.vbs文件或winautomation执行时抛出语法错误。我是vb的新手,请帮忙。

Sub Test()
sUser = "TheUserName"
sDN = "uid=" & sUser & ",o=users,dc=MyDomain,dc=it"
sRoot = "LDAP://MyLDAPServer/o=users,dc=MyDomain,dc=it"

Dim oDS: Set oDS = GetObject("LDAP:")

On Error GoTo AuthError
Dim oAuth: Set oAuth = oDS.OpenDSObject(sRoot, sDN, "ThePassword", &H200)
On Error GoTo 0

MsgBox "Login Successful"
Exit Sub

AuthError:
If Err.Number = -2147023570 Then
   MsgBox "Wrong Username or password !!!"
End If
On Error GoTo 0
End Sub

1 个答案:

答案 0 :(得分:2)

来自Handling Errors in VBScript

  

Visual Basic中使用的方法与VBScript使用的方法之间几乎没有区别。主要区别在于VBScript不支持通过在标签上继续执行来进行错误处理的概念。换句话说,你不能在VBScript中使用On Error GoTo 。相反,使用On Error Resume Next,然后检查Err.Number和Errors集合的Count属性,如以下示例所示:(此处未提供示例 - 例如使用链接)

因此,您需要自己的错误处理代码部分。

On Error Resume Next
Dim oAuth: Set oAuth = oDS.OpenDSObject(sRoot, sDN, "ThePassword", &H200)
Select Case Err.Number
    Case 0:
        'ERROR_SUCCESS - do nothing
    Case -2147023570
        MsgBox Err.Number & ": " & Err.Description &Chr(10) & "Wrong Username or password !!!"
        Err.Clear
        Exit Sub
    Case Else
        'deal with other errors
        MsgBox Err.Number & ": " & Err.Description
        Err.Clear
        Exit Sub
End Select

有关在Information.Err Method获取错误信息的更多信息。