For Each 循环用于为数组或集合中的每个元素执行一个语句或一组语句。
句法:
For Each element In group
[ statements ]
[ Exit For ]
[ statements ]
Next [ element ]
For…Each…Next 语句语法包含以下三个部分:
Part | Description |
---|---|
element | Required (Must be mentioned). Variable is used to iterate through the elements of the collection or array. For collections, the element can only be a Variant variable, a generic object variable, or any specific object variable. For arrays, the element can only be a Variant variable. |
group | Required(Must be mentioned). Name of an object collection or array (except an array of user-defined types). |
statement | Optional (May or may not be mentioned). One or more statements are executed on each item in the group. |
在 VBA 中编写 For Each Next 循环有 4 个基本步骤:
- 声明一个变量。
- 使用变量和集合引用编写 For Each Line。
- 为集合中的每个项目添加要重复的代码行。
- 编写下一行以终止循环。
如果组中至少有一个元素,则进入 For…Each 块。进入循环后,循环中的所有语句都会针对每个元素执行。当组中没有更多元素时,将退出循环并继续执行 Next 语句之后的语句。下一个语句行终止循环。
可以将任意数量的 Exit For 语句放在循环中的任何位置作为退出的替代方式。 Exit For 通常在评估某些条件后使用,例如 If…Then,并将控制转移到紧跟 Next 之后的语句。
您还可以通过将一个 For…Each…Next 循环置于另一个循环中来嵌套 For…Each…Next 循环。但是,每个循环元素的方式必须是唯一的。
NOTE
- Execution continues as if element is included, if you omit element in a Next statement.
- An error occurs, If a Next statement is encountered before its corresponding For statement,
您不能将 For…Each…Next 语句用于用户定义类型的数组,因为 Variant 不能包含用户定义类型。
示例 1
Private Sub Demo_Loop()
students is an array
students = Array(“Akshit”, “Nikita”, “Ritesh”) //Initialising Array-> students
Dim studentnames As Variant // Variable is assigned
‘iterating using For each loop.
For Each Item In students
studentnames =studentnames & Item & Chr(10)
Next
MsgBox studentnames
End Sub
它看起来有点像下面:
执行上述代码时,它会打印所有学生姓名,每行一项。