If i have a nested for loop and put an END FOR in the inner loop, will it
exit just the inner loop or both loops?
If i have a nested for loop and put an END FOR in the inner loop, will it
exit just the inner loop or both loops?
It's "Exit For" not "End For". And it will exit the inner For loop. HTH
Otto
"SandyR" <[email protected]> wrote in message
news:[email protected]...
> If i have a nested for loop and put an END FOR in the inner loop, will it
> exit just the inner loop or both loops?
Give it a try... Here is some code for you to follow through...
Sub TestLoops()
Dim i As Integer
Dim j As Integer
For i = 1 To 3
For j = 1 To 100
MsgBox i * j
If j = 3 Then Exit For
Next j
Next i
End Sub
--
HTH...
Jim Thomlinson
"SandyR" wrote:
> If i have a nested for loop and put an END FOR in the inner loop, will it
> exit just the inner loop or both loops?
"End For" is a syntax error. Exit For will exit only the For...Next
structure that it's embedded in.
From XL/VBA Help ("Exit Statement"):
> Exit For
> Provides a way to exit a For loop. It can be used only in a
> For...Next or For Each...Next loop. Exit For transfers control to
> the statement following the Next statement. When used within nested
> For loops, Exit For transfers control to the loop that is one
> nested level above the loop where Exit For occurs.
One alternative if you want to exit both loops:
Dim a(1 To 100, 1 To 1000)
Dim i As Long, j As Long
Do
For i = 1 To 100
For j = 1 To 1000
a(i, j) = Int(Rnd() * 100)
If a(i, j) = 98 Then Exit Do
Next j
Next i
Loop
Debug.Print i, j
or
Dim a(1 To 100, 1 To 1000)
Dim i As Long, j As Long
For i = 1 To 100
For j = 1 To 1000
a(i, j) = Int(Rnd() * 100)
If a(i, j) = 98 Then GoTo Continue
Next j
Next i
Continue:
Debug.Print i, j
In article <[email protected]>,
SandyR <[email protected]> wrote:
> If i have a nested for loop and put an END FOR in the inner loop, will it
> exit just the inner loop or both loops?
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks