vba while loop code example
Example 1: excel vba while... "end while" doesn't work?
'In VBA, there is no 'While... End While' loop.
'Attempting to use the above construct will result in a compile-time
'error.
'But VBA does have two loops that use the keyword, 'While'...
While c < 100
c = c + 1
'But VBA does not have an 'Exit While' statement.
Wend
Do While c < 100
c = c + 1
If c = 75 Then Exit Do
Loop
'The 'Do Loop' can also be written as:
Do
c = c + 1
If c = 75 Then Exit Do
Loop While c < 100
'--------------------------------------------------------------------
'The loops can also run backward...
c = 99
While c
'Do something with c here
c = c - 1
Wend
c = 99
Do
'Do something with c here
c = c - 1
Loop While c
Example 2: while loop python
while (condition):
doThis();
Example 3: vba while loop
i = 0
While i < 100
'Code here is executed 100 times.
i = i + 1
Wend
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Notes: The While loop is terminated with the 'Wend' keyword.
'
' The While loop must include a Boolean expression directly after
' the 'While' keyword and the loop will execute for as long as the
' Boolean expression evaluates to True. This expression should be
' based on something that has the POTENTIAL TO CHANGE on each cycle
' through the loop. For example, 'i' in the above code.
'
' The While expression is evaluated at the beginning EACH cycle through
' the loop. The expression DOES NOT NEED to be NUMERIC; but it must
' evaluate to True or False. The While loop will be skipped entirely if
' the expression evaluates to False before the loop begins.
' The following code demonstrates how the above While loop
' functions (without actually using the 'While' and 'When' keywords):
i = 0
LoopStart:
If (i < 100) = False Then GoTo LoopEnd
'Code here is executed 100 times.
i = i + 1
GoTo LoopStart
LoopEnd:
' This is for demonstration purposes only. Although these two loops are
' equivalent, using the 'GoTo' statement should be avoided. The While loop
' accomplishes the exact same task, but cleanly, without the
' line labels and without the 'GoTo' statements.
'
'Note: VBA does not include an 'Exit While' statement to terminate the loop
' early. VBA does include the 'Exit Do' statement for the Do loop and
' also the 'Exit For' statement for the For loop. But it is possible
' to exit the While loop early with a 'GoTo' statement, but again, the
' 'GoTo' statement should be avoided. It's also possible to exit
' the While loop with the 'Exit Sub' and 'Exit Function' statements.
' But of course, these last two statements will not only exit the
' While loop, they will also immediately exit the current procedure.
'
'Note: From an efficiency standpoint, the For loop may be a better choice
' than the While loop because the For loop's range is calculated only
' once, before the For loop starts. By contrast, the While loop's
' expression is evaluated before each and every cycle of the loop.
'
'
'
Example 4: vba for loop
' For VBA//VB/Visual Basic only
' ================================================================
' METHOD: FUNDAMENTAL
'EXAMPLE
Dim iTotalPrints As Integer
iTotalPrints = 5
For iCount = 1 To iTotalPrints
MsgBox Prompt:=iCount, Title:="Method: Fundamental"
Next
'SYNTAX
' For <your-variable-to-be-used> = <first-number> To <last-number>
' 'Code that uses <your-variable-to-be-used>
' Next
' ================================================================
' METHOD: WITHIN AN ARRAY
'EXAMPLE
Dim sTextList(4) As String 'Note: doesn't have to be of "String" data-type
sTextList(0) = "aaa"
sTextList(1) = "bbb"
sTextList(2) = "ccc"
sTextList(3) = "ddd"
sTextList(4) = "eee"
For Each sSeparateText In sTextList
MsgBox Prompt:=sSeparateText, Title:="Method: Within an Array"
Next
'SYNTAX
' For Each <your-variable-to-be-used> In <your-array-of-texts>
' 'Code that uses <your-variable-to-be-used>
' Next
Example 5: vba do while
' OPTION 1
i =0
Do While i < 3 'Check Condition at the START of the loop
' Do something
i = i + 1
Loop
'OPTION 2
i =0
Do
' Do something
i = i + 1
Loop While i < 3 'Check Condition at the END of the loop