4.4.5-跳出循环或函数或过程¶
当我们使用循环寻找信息时,当找到需要的信息时,希望循环立刻终止,减少不必要的资源浪费。我们这时候就可以使用Exit For,表示立即终止当前循环,继续执行For…Next后的代码。
以下代码输出的结果如图4-11所示,当i取值为5时,If i = 5 Then为True,执行Exit For,退出循环,执行循环体后的语句Debug.Print ("程序执行完毕")。
Sub test5()
For i = 1 To 1000 Step 1
If i = 5 Then
Exit For
Else
Debug.Print (i)
End If
Next i
Debug.Print ("程序执行完毕")
End Sub
当有多层循环时,从Exit For向上数,遇到的第一个For 循环为其退出的循环。以下代码执行的结果如图4-12所示
Sub test6()
For i = 1 To 2 Step 1
For j = 1 To 100 Step 1
If j = 5 Then
Exit For
Else
Debug.Print (j)
End If
Next j
Next i
Debug.Print ("程序执行完毕")
End Sub
Exit也可以退出Sub,以下代码退出当前Sub过程,执行结果如图4-13,从结果发现Exit Sub后的代码全部没有被执行。
Sub test7()
Debug.Print ("程序执行开始")
x = 1
If x = 1 Then
Exit Sub
End If
Debug.Print ("程序执行完毕")
End Sub
同理Exit也可以退出Function,以下代码执行结果如图4-14所示,fun8函数只返回了2。如果分步调试执行代码,你会发现,当运行到Exit Function,整个fun8函数就执行完毕了。
Sub test8()
x = fun8()
Debug.Print (x)
End Sub
Function fun8()
fun8 = 2
Exit Function
fun8 = 3
End Function
综上所述,Exit的效果就是退出,合理使用Exit,极大节约计算机资源。



