如何在同一个子中调用一个子一次?
How to call a sub within same sub once?
我想根据条件调用同一个子例程的子例程,但一旦满足就退出
例如
Dim p as Long
Sub Main()
Debug.Print "Start Main"
p = 1
call A
Debug.Print "End Main"
End Sub
Sub A()
Debug.Print "Start"
if p = 1 then
p = 2
call A
End if
Debug.Print "End"
End Sub
如果我 运行 Main
我会得到以下输出 这是正常的,因为我们调用 A 两次所以两次开始和两次结束
Start Main
Start
Start
End
End
End Main
但是我不想在子 A 第一次结束后 return 到子 A 的 End if
这意味着如果我调用 Main
我想要以下输出
Start Main
Start
Start
End
End Main
注意只有一个End
只需在您希望 A() 结束的地方添加一个 Exit Sub
Dim p as Long
Sub Main()
Debug.Print "Start Main"
p = 1
call A
Debug.Print "End Main"
End Sub
Sub A()
Debug.Print "Start"
if p = 1 then
p = 2
call A
Exit Sub
End if
Debug.Print "End"
End Sub
使用 else 子句
Dim p As Long
Sub Main()
Debug.Print "Start Main"
p = 1
Call A
Debug.Print "End Main"
End Sub
Sub A()
Debug.Print "Start"
If p = 1 Then
p = 2
Call A
Else
Debug.Print "End"
End If
End Sub
我想根据条件调用同一个子例程的子例程,但一旦满足就退出
例如
Dim p as Long
Sub Main()
Debug.Print "Start Main"
p = 1
call A
Debug.Print "End Main"
End Sub
Sub A()
Debug.Print "Start"
if p = 1 then
p = 2
call A
End if
Debug.Print "End"
End Sub
如果我 运行 Main
我会得到以下输出 这是正常的,因为我们调用 A 两次所以两次开始和两次结束
Start Main
Start
Start
End
End
End Main
但是我不想在子 A 第一次结束后 return 到子 A 的 End if
这意味着如果我调用 Main
Start Main
Start
Start
End
End Main
注意只有一个End
只需在您希望 A() 结束的地方添加一个 Exit Sub
Dim p as Long
Sub Main()
Debug.Print "Start Main"
p = 1
call A
Debug.Print "End Main"
End Sub
Sub A()
Debug.Print "Start"
if p = 1 then
p = 2
call A
Exit Sub
End if
Debug.Print "End"
End Sub
使用 else 子句
Dim p As Long
Sub Main()
Debug.Print "Start Main"
p = 1
Call A
Debug.Print "End Main"
End Sub
Sub A()
Debug.Print "Start"
If p = 1 Then
p = 2
Call A
Else
Debug.Print "End"
End If
End Sub