VBScript运行在Excel中,但不是在记事本中

以下脚本在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 

从处理VBScript中的错误 。

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

所以你将需要你自己的error handling代码部分。

 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方法获取错误信息的更多信息 。