+ Reply to Thread
Results 1 to 4 of 4

nested for loops and end for

  1. #1
    SandyR
    Guest

    nested for loops and end for

    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?

  2. #2
    Otto Moehrbach
    Guest

    Re: nested for loops and end for

    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?




  3. #3
    Jim Thomlinson
    Guest

    RE: nested for loops and end for

    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?


  4. #4
    JE McGimpsey
    Guest

    Re: nested for loops and end for

    "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?


+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1