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 支持和反馈,获取有关如何接收支持和提供反馈的指南。