When working with VBA, the Exit statement is a useful tool to have in your coding arsenal. It allows you to control the flow of your code by immediately exiting a procedure, loop, or block of code. In this blog post, we will explore the purpose and syntax of the Exit statement, provide the top 5 examples of its usage, and discuss important notes and remarks. Let’s dive in!
VBA Exit Statement:
Purpose of the Exit Statement
The main purpose of the Exit statement is to provide a way to break out of a loop, exit a procedure, or skip a section of code under certain conditions. This can save you time and effort by avoiding unnecessary iterations and allowing your code to run more efficiently. It also provides a more flexible approach to control the execution of code without having to use multiple ‘If’ statements.
Syntax of the Exit Statement
The Exit statement can be used in three ways: ‘Exit Sub’, ‘Exit For’, and ‘Exit Do’. The syntax for each is as follows:
- Exit Sub: Exits a Sub procedure and returns control to the calling procedure.
- Exit For: Exits a For loop and continues code execution at the next statement after the loop.
- Exit Do: Exits a Do…Loop and continues code execution at the next statement after the loop.
The ‘Exit Sub’ statement has no additional options or arguments, while the ‘Exit For’ and ‘Exit Do’ statements can be followed by an optional label to specify which loop to exit if there are nested loops within a procedure.
Examples of the VBA Exit Statement
Example 1: Exiting a Sub Procedure
Sub ExitSub()
'Code to perform a task
'If a certain condition is met, exit the Sub procedure
If Condition = True Then
Exit Sub
End If
'Code continues to execute if the condition is not met
MsgBox "The condition is not met, the code will continue to execute."
End Sub
Example 2: Using ‘Exit For’ to Skip Unnecessary Iterations
Sub ExitFor()
'Code to loop through a range of cells
For Each cell In Range("A1:A10")
'If a certain condition is met, exit the loop
If cell.Value = "Skip" Then
Exit For
End If
'Code to execute for each cell in the range
Debug.Print cell.Value
Next cell
End Sub
Example 3: Exiting a Do…Loop
Sub ExitDo()
'Code to initialize a count variable
Dim count As Integer
count = 0
'Do...Loop to run the code while the count is less than 10
Do While count < 10
'If a certain condition is met, exit the loop
If count = 5 Then
Exit Do
End If
'Print the count value and increment by 1
Debug.Print count
count = count + 1
Loop
End Sub
Example 4: Nested For Loops with a Label
Sub NestedLoops()
'Code to loop through two ranges
For Each cell1 In Range("A1:A5")
For Each cell2 In Range("B1:B5")
'If a certain condition is met, exit the second loop and continue the first loop
If cell1.Value = "Exit" And cell2.Value = "Continue" Then
Exit For cell1
End If
'Print the values from both cells
Debug.Print cell1.Value, cell2.Value
Next cell2
Next cell1
End Sub
Example 5: Preventing Error with ‘Exit Do’ and Error Handling
Sub PreventError()
'Code to loop through a range of cells
For Each cell In Range("A1:A10")
'Check if the cell value is numeric
If IsNumeric(cell.Value) = False Then
'If the value is not numeric, exit the loop and display an error message
MsgBox "A non-numeric value is found in cell " & cell.Address, vbCritical
Exit Do
End If
'Code to execute for each cell if the value is numeric
Debug.Print cell.Value
Next cell
End Sub
Important Notes and Remarks
- The Exit statement can only be used within a procedure.
- Using ‘Exit Sub’ or ‘Exit Function’ will immediately exit the entire procedure, while using ‘Exit For’ or ‘Exit Do’ will only exit the loop they are contained within.
- You can also use the ‘GoTo’ statement with a label to skip a section of code, but it is considered a poor coding practice and can make your code harder to read and maintain.
In this post, we have explored the purpose and syntax of the Exit statement in VBA. We have also provided the examples of its usage and discussed important notes and remarks. By using the Exit statement, you can have more control over your code, make it more efficient, and avoid unnecessary iterations. Have you used the Exit statement in your code?
Do you have any other examples or tips for using it effectively? We would love to hear your feedback and views in the comments below.


