foreach foreach和for循环区别哪个更快

2024-09-2701:06:42综合资讯0

上一章我们探讨了Do While循环的基本概念及其应用,今天的重点是VBA中的For Each…Next结构及其特性。我们将详细介绍这一语法的使用方法和特点。

了解For Each结构的基本语法:

For Each 元素变量 in 集合(如数组或集合)

要执行的语句块

Exit For

要执行的语句块

Next 元素变量

下面的截图为您展示了这一结构的具体示例:

foreach foreach和for循环区别哪个更快

需要注意的是:For Each…Next的灵活性远超其他循环结构。它不依赖于循环条件判断,特别适用于遍历数组或集合。当使用此结构遍历数组时,不能修改数组中的值,只能修改元素的属性,例如更改字体颜色等。

下面是一个简单的示例:

假设A列中包含了多个姓名(忽略姓名重复的情况):

foreach foreach和for循环区别哪个更快

我们的目标是使用刚学到的循环结构来提取这些数据并将其输出到另一个表格中。

foreach foreach和for循环区别哪个更快

解释以下代码:

foreach foreach和for循环区别哪个更快

代码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单元格中。

foreach foreach和for循环区别哪个更快

foreach foreach和for循环区别哪个更快

代码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

注意:输出的结果会显示在当前活动的工作表中(即你正在操作的表格)。尝试切换到不同的工作表,你会看到输出结果随之改变。

今天的内容分享到这里,如果觉得有用,请关注我们,谢谢!

明天继续带来更多精彩内容。