Оператор For Each...Next

Повторяет группу операторов для каждого элемента в массиве или коллекции.

Синтаксис

Для каждогоэлементавгруппе
[ операторы ]
[ Выход для ]
[ операторы ]
Next [ element ]

Синтаксис оператора For...Each...Next состоит из следующих частей:

Part Описание
Элемент Обязательно. Переменная, которая используется для перебора элементов коллекции или массива. Для коллекций элемент может быть только переменной Variant , универсальной объектной переменной или любой конкретной объектной переменной. Для массивов аргумент element может быть только переменной Variant.
group Обязательно. Имя массива или коллекции объектов, за исключением массивов пользовательских типов.
Операторы Необязательный параметр. Один или несколько операторов, которые выполняются для каждого элемента в группе.

Замечания

Блок For…Each используется при наличии в группе как минимум одного элемента. После ввода цикла все инструкции в цикле выполняются для первого элемента в группе. Если в группе присутствуют другие элементы, операторы цикла последовательно выполняются для каждого из них. После обработки всех элементов в группе цикл завершается, и продолжается выполнение операторов, следующих за оператором Next.

Любое количество операторов Exit For может быть размещено в любом месте цикла в качестве альтернативного способа выхода. Выход для часто используется после оценки некоторых условий, например Если... Затем и передает управление оператору сразу после Next.

Циклы For...Each...Next можно вкладывать в другие циклы For…Each…Next. Тем не менее, каждый цикл должен иметь уникальный аргумент element.

Примечание.

Если опустить аргумент element в операторе Next, выполнение продолжается так, как если бы аргумент element был включен. При обнаружении оператора Next до завершения соответствующего оператора For возникает ошибка.

Оператор For...Each...Next нельзя использовать с массивом пользовательского типа, поскольку тип Variant не может содержать пользовательские типы.

Пример

В этом примере оператор For Each...Next используется для поиска строки "Hello" в свойствах Text всех элементов коллекции. В этом примере MyObject представляет собой текстовый объект и является элементом коллекции MyCollection. Оба имени являются общими и используются исключительно в качестве примера.

Dim Found, MyObject, MyCollection 
Found = False    ' Initialize variable. 
For Each MyObject In MyCollection    ' Iterate through each element.  
    If MyObject.Text = "Hello" Then    ' If Text equals "Hello". 
        Found = True    ' Set Found to True. 
        Exit For    ' Exit loop. 
    End If 
Next

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.