Name

For Each...Next Statement

Syntax

For Eachelement In group
[statements]
[Exit For]
[statements]
Next [element]
element

Use: Required

Data Type: Object or any user-defined object type

An object variable to which the current element from the group is assigned

group

Use: Required

An object collection or array

statements

Use: Optional

A line or lines of program code to execute within the loop

Description

Loops through the items of a collection or the elements of an array

Rules at a Glance

  • The For Each...Next code block is executed only if group contains at least one element. If group is an empty collection or an array that has not yet been dimensioned, an error (runtime errors 92, “For loop not initialized,” and 424, “Object required,” respectively, or a NullReferenceException exception) results.

  • All statements are executed for each element in group in turn until either there are no more elements in group or the loop is exited prematurely using the Exit For statement. Program execution then continues with the line of code following Next.

  • For Each...Next loops can be nested, but each element must be unique. For example:

    For EachmyObj In AnObject
        For Each subObject In myObj
            SName = subObject.NameProperty
        Next
    Next

    uses a nested For Each...Next loop, but two different variables, myObj and subObject, represent element.

  • Any number of Exit For statements can be placed within the For Each...Next loop to allow for premature, conditional exit of the loop. Once the loop is exited, execution of the ...

Get VB .NET Language in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.