Excel VBA: If … ElseIf … Else statement

If … ElseIf … Else statement

This function enables you to check two conditions and, based on that, then run one of the three statement blocks present. If the ‘IF’ condition is TRUE, IF statement and condition will run if it is FALSE, then the program will check the ‘ELSEIF’ condition. If it is also false, i.e., not applicable, the else statement will come in the loop. This statement will always have a closing ‘END IF’ statement else, VBA will give an error.

Syntax

If <Condition1> Then
     <Statements1>
 ,
 ElseIf <Condition2> Then
     <Statement2>
 ,
 Else
     <Statement>
 ,
 End If 

Example 1: Write a macro, to check whether the user number entered by the user is positive, negative or equal to zero.

Sub If_ElseIf_Else_Example1()
     'Variable declaration
     Dim Number As Integer
     'Accepting the number by the user
     Number = InputBox("Enter a Number:", "Number")
     If Number < 0 Then
         'Condition to check if the number is negative i.e., less than zero
         MsgBox Number & " is a negative number." 
     ElseIf Number > 0 Then
         'Condition to check whether the number is greater than zero
         MsgBox Number & " is a positive number."
     Else
         'Condition to check whether the number is equal to zero
         MsgBox Number & " is equal to zero."
     End If
 End Sub 

Output

VBA  If ElseIf Else statement1
VBA  If ElseIf Else statement2

Example 2

Sub If_Then_Else_Example2()
     'Variable declaration
     Dim Marks As String
     'Accepting the value by the user
     Percentile = InputBox ("Enter the candidate's percentile", "Marks")
     If Percentile >= 81 Then
         'Check if the Candidate's has been selected
         MsgBox "Candidate is been selected!" 
     ElseIf Percentile >= 61 And Percentile < 80 Then
         'Condition to check whether the number is greater than zero
         MsgBox Number & " Candidate is eligible for second round!."
     Else
         'Check if the Candidate has failed
         MsgBox "Sorry! Better Luck next time. "
     End If
 End Sub 

Output

VBA  If ElseIf Else statement3
VBA  If ElseIf Else statement4