上一章我们探讨了Do While循环的基本概念及其应用,今天的重点是VBA中的For Each…Next结构及其特性。我们将详细介绍这一语法的使用方法和特点。
了解For Each结构的基本语法:
For Each 元素变量 in 集合(如数组或集合)
要执行的语句块
Exit For
要执行的语句块
Next 元素变量
下面的截图为您展示了这一结构的具体示例:
需要注意的是:For Each…Next的灵活性远超其他循环结构。它不依赖于循环条件判断,特别适用于遍历数组或集合。当使用此结构遍历数组时,不能修改数组中的值,只能修改元素的属性,例如更改字体颜色等。
下面是一个简单的示例:
假设A列中包含了多个姓名(忽略姓名重复的情况):
我们的目标是使用刚学到的循环结构来提取这些数据并将其输出到另一个表格中。
解释以下代码:
代码1:
Sub fe()
Dim i As Integer, k As Integer, j As Variant, b As Integer
Dim shuzu() As Variant
b = WorksheetFunction.CountA(Range("A:A"))
ReDim shuzu(1 To b) As Variant
For k = 1 To b
shuzu(k) = Cells(k, 1)
Next
i = 1
For Each j In shuzu
Cells(i, 2) = j
i = i + 1
Next
End Sub
再来看一个实际应用实例(主要是为了帮助理解For Each循环的使用方法):
编写一个程序,通过For Each…Next将1到20的整数输出到A1到A20单元格中。
代码2:
Sub sh()
Dim k As Range, j As Integer
j = 1
For Each k In Range("A1:A20")
k.Value = j
j = j + 1
Next
End Sub
注意:输出的结果会显示在当前活动的工作表中(即你正在操作的表格)。尝试切换到不同的工作表,你会看到输出结果随之改变。
今天的内容分享到这里,如果觉得有用,请关注我们,谢谢!
明天继续带来更多精彩内容。