如果发生错误,如何使VBA子从调用的函数中退出?
我尝试将Exit Sub
语句放入相关函数中,但是每当我保存并重新打开文件时,VBA都会自动将其更改为Exit Function
。
例如,如何获取下面的代码
Sub foo()
userNum = userNum()
MsgBox(var)
End Sub
Function userNum() As Integer
userNum = InputBox("Enter your positive number")
If var < 0 Then
MsgBox("Invalid: your number must be positive.")
Exit Sub
End If
End Function
不执行MsgBox(var)
?
答案 0 :(得分:1)
Application.InputBox
与Type:=1
一起使用,以接受数字作为输入。Variant
,以便您可以处理Cancel
中的InputBox
按钮。还可以使用它来决定是否要显示数字。这是您要绑的东西吗? (未经测试)
Option Explicit
Sub foo()
Dim numb As Variant
numb = userNum()
If numb <> False Then MsgBox numb
End Sub
Function userNum() As Variant
Dim Ret As Variant
Ret = Application.InputBox(Prompt:="Enter you number", Type:=1)
If Ret = False Then
userNum = False
Exit Function
ElseIf Ret < 0 Then
MsgBox ("Invalid: your number must be positive.")
userNum = False
Exit Function
End If
userNum = Ret
End Function