How to use Do Until Loop in Excel VBA?
In this article, we are going to see look into the Do Until loop in Excel VBA using a suitable example.
In the Microsoft Excel tabs, select the Developer Tab. Initially, the Developer Tab may not be available.
The Developer Tab can be enabled easily by a two-step process :
- Right-click on any of the existing tabs in the top of the Excel window.
- Now select Customize the Ribbon from the pop-down menu.
- In the Excel Options Box, check the box Developer to enable it and click on OK.
- Now, the Developer Tab is visible.
Now click on the Visual Basic option in the Developer tab and make a new module to write the program using the Select Case statement.
Developer -> Visual Basic -> Tools -> Macros
- Now create a Macro and give any suitable name.
- This will open the Editor window where can write the code.
Do Until Loop
In Do Until loop the condition is checked. The statements inside the loop are executed when the condition becomes FALSE. When the condition becomes TRUE, the loop terminates. In the case of a Do Until we can write the condition either in the beginning or at the end. There are two possible syntaxes in the case of Do Until Loop. The keyword Do is used to perform the tasks until certain criteria are met.
The syntax is :
Do Until condition/expression Statement 1 Statement 2 Statement 3 ... Statement n Loop
An alternate syntax is :
Do Statement 1 Statement 2 Statement 3 ... Statement n Loop Until Condition/expression
Flow Diagram :
Example : Print the age of all the employees in an organization whose age falls between thirty to forty years.
Sub Do_Until_Age_Emp() 'Initialize and declare the age of the employee Dim Age As Integer: Age = 30 'Condition to print the age of employees between 30 to 40 years Do Until Age > 38 Age = Age + 1 MsgBox ("Age:" & Age) Loop End Sub
In the above code, the condition is Do Until Age > 38. It will execute the age of employees from 31 to 39 years because when the age becomes 39 the condition becomes TRUE and the loop terminates. In the Excel message box we get the ages of the employees between 30 to 40 years.
Age : 31
Age : 32
Age : 33
Age : 34
Age : 35
Age : 36
Age : 37
Age : 38
Age : 39
Similarly, the above code can also be written as :
Sub Do_Until_Age_Emp() 'Initialize and declare the age of the employee Dim Age As Integer: Age = 30 'Start of Do Until Loop Do Age = Age + 1 MsgBox ("Age:" & Age) Loop Until Age > 38 'Condition to print the age of employees between 30 to 40 years End Sub