For Each...Next 语句

数组集合中的每个元素重复一组语句

语法

对于组中的每个元素
[ 语句 ]
[ Exit for ]
[ 语句 ]
下一个 [ 元素 ]

“For...Each...Next”语句语法包含以下部分:

Part 说明
元素 必填。 用于循环访问集合或数组的变量。 对于集合, 元素 只能是 Variant 变量、泛型对象变量或任何特定对象变量。 对于数组,元素 仅可是 Variant 变量。
必填。 对象集合或数组(用户定义类型的数组除外)的名称。
statements 可选。 在 中的每个项目上执行的一个或多个语句。

备注

如果 中有至少一个元素,则进入“For…Each”块。 输入循环后,将针对 组中的第一个元素执行循环中的所有语句。 如果 中有多个元素,则继续为每个元素执行循环中的语句。 中不再有元素时,退出循环并继续执行“Next”语句后的语句。

任意数量的 Exit For 语句可以放置在循环中的任意位置,作为退出的替代方法。 计算某些条件后,通常使用 Exit For,例如 If...然后,在“下一步”之后立即将控制权转移到 语句。

可通过将“For...Each...Next”循环放置在另一个该循环内来嵌套“For...Each...Next”循环。 但是,每个,每个循环元素 必须是唯一的。

注意

如果忽略“Next”语句中的元素,则像包括了元素 一样继续执行。 如果先遇到“Next”语句再遇到其相应的“For”语句,则将发生错误。

不可随用户定义类型的数组一起使用“For...Each...Next”语句,因为“变量”不可包含用户定义类型。

示例

此示例使用“For Each...Next”语句搜索集合中所有元素的“文本”属性,以搜索是否存在字符串“Hello”。 在该示例中,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 支持和反馈,获取有关如何接收支持和提供反馈的指南。