Control Structures are most powerful feature of any programming language. Similarly, there are some Control Structures which is commonly used by VBA programming. Usually, these control structures are very useful to save ample amount of time to write large number of line of codes. It helps to facilitate user to work on very complex logic and calculations.
Following is a list of the most commonly used Excel VBA programming control structures. Detailed illustration with few simple example and brief description is given below. Which will be very helpful to know when you would use that structure into your project.
Refer below sample examples and illustration:
1) For – Next
Useful for looping through an array
ArraySum = 0
For i = 1 To 10
ArraySum = ArraySum + MyArray(i)
Next i
2) For Each – Next
Useful for looping through a collection or a range of cells
SelectionSum = 0
For Each cell In Selection
SelectionSum = SelectionSum + cell.Value
Next cell
3) Do – Loop Until
Loop until a condition is met
Row = 0
Do
Row = Row + 1
Loop Until Cells(Row, 1).Value = ""
MsgBox "First empty cell is in Row " & Row
4) Do While – Loop
Loop while a condition is true
Row = 1
Do While Cells(Row, 1) <> ""
Row = Row + 1
Loop
MsgBox "First empty cell is in Row " & Row
5) If – Then
Do something if a condition is true. Written as a single statement
If x = 1 Then y = 1
6) If – Then – End If
Do something if a condition is true. Can use multiple statements
If x = 1 Then
y = 1
z = 1
End If
7) If – Then – Else
Do something if a condition is true; otherwise, do something else.
Written as a single statement
If x = 1 Then y = 1 Else y = 0
8) If – Then – Else – End If
Do something if a condition is true; otherwise, do something else. Can
use multiple statements
If x = 1 Then
y = 1
Z = 1
Else
y = 0
Z = 0
End If
9) Select Case
Do one of several things, depending on a condition
Select Case x
Case 1
y = 1
Z = 1
Case Is > 1
y = 2
Z = 2
Case Else
y = 0
Z = 0
End Select
10) Goto
Jump to a labeled statement. This is used mostly for error handling
On Error GoTo Oops
'[your code goes here]
Exit Sub
Oops:
MsgBox "An error occurred"