Оператор 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 и обратная связь.