我得到的印象是这是不可能的,但这是我到目前为止所得到的. Sub Main() On Error GoTo ErrorHandler If Command$= "" Then LogAction "Begin document lockdown" LockdownDocs LogAction "Lockdown complete" Else LogAction "Begin
Sub Main() On Error GoTo ErrorHandler If Command$= "" Then LogAction "Begin document lockdown" LockdownDocs LogAction "Lockdown complete" Else LogAction "Begin document enabling" EnableDocs LogAction "Documents have be enabled" End If Exit Sub ErrorHandler: LogAction "DocLock Error " & Err.Number & "::" & Err.Description End Sub
我希望它看起来像这样:
Function Main() As Boolean On Error GoTo ErrorHandler If Command$= "" Then LogAction "Begin document lockdown" LockdownDocs LogAction "Lockdown complete" Else LogAction "Begin document enabling" EnableDocs LogAction "Documents have be enabled" End If Return True Exit Function ErrorHandler: LogAction "Error " & Err.Number & "::" & Err.Description Return False End Function
我见过的最接近的是Visual Studio 2005中的Function Main()As Integer,但我使用的是VB6.
通过使用Win32 API调用,可能有一个解决方案 here.在本质上:Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long) ' Exit with ErrorLevel set to 9 ExitProcess 9
请注意,这相当于VB运行时的结束,因此您必须在调用ExitProcess之前执行任何清理,关闭连接,文件,设备,表单等.