单回路| 链接:#双回路[双循环]| 链接:#三环路[三重循环]| 链接:#做-while循环[do while循环]

循环是最强大的编程技术之一。在Excel VBA中环路,您可以遍历一个范围只有几码线的细胞。

单回路

可以通过细胞的一维范围使用单个循环来循环。

命令按钮在工作表,并添加以下代码行:

Dim i As Integer

For i = 1 To 6

Cells(i, 1).Value = 100

Next i

结果当您单击工作表上的命令按钮:

Single Loop in Excel VBA

说明:对于和下一步之间的行代码将被执行六次。对于i = 1时,Excel VBA输入值100到第1行和第1列的交集的单元当Excel VBA到达下一个I,它增加i相1和跳回For语句。对于i = 2时,Excel VBA输入值100到第2行和第1列,等的交叉点处的细胞

注:这是很好的做法,始终缩进(选项卡)的字之间的代码和下一步。这使你的代码更易于阅读。

双环

您可以通过细胞的二维范围内使用双回路循环。

命令按钮在工作表,并添加以下代码行:

Dim i As Integer, j As Integer

For i = 1 To 6

For j = 1 To 2

Cells(i, j).Value = 100

Next j

Next i

结果当您单击工作表上的命令按钮:

Double Loop in Excel VBA

说明:对于i = 1和j = 1时,Excel VBA输入值100到第1行和第1列当Excel VBA达到接下来j的交叉点处的细胞,它增加Ĵ1和跳回对于j语句。对于i = 1和j = 2时,Excel VBA输入值100到细胞在第1行和第2列下的交叉点时,Excel VBA忽略接着Ĵ因为Ĵ只从1到2当Excel VBA到达下一个I ,它增加了我1并跳转回,因为我的发言。对于i = 2且j = 1时,Excel VBA输入值100到细胞在第2行和第1列,等等的交点

三环

您可以通过在多个Excel工作表的二维范围内使用三重循环来循环。

命令按钮在工作表,并添加以下代码行:

Dim c As Integer, i As Integer, j As Integer

For c = 1 To 3

For i = 1 To 6

For j = 1 To 2

Worksheets(c).Cells(i, j).Value = 100

Next j

Next i

Next c

说明:唯一的变化作了对比,为双循环的代码是,我们已经增加了一个循环,并增加工作表(C)。在细胞的前面,以获得第一片材当c = 1上的二维范围,当c = 2的第二片材和所述第三片材当c = 3下载的Excel文件看到这种结果。

do while循环

除了对于Next循环,也有在Excel VBA其他循环。例如,do while循环。代码放置之间做虽然和虽然是真正的循环只要将重复后做的部分。

命令按钮工作表上,并添加以下代码行:

Dim i As Integer

i = 1

Do While i < 6

Cells(i, 1).Value = 20

i = i + 1

Loop

结果当您单击工作表上的命令按钮:

Do While Loop

说明:只要i是低于6时,Excel VBA输入值20成i行和第1列和i递增的由1.在Excel VBA(和其他编程语言)的交叉点的单元,符号“= “方法变成。这并不等于意思。所以I = I + 1个装置I成为i + 1。换言之:取i的当前值和把它加1。例如,若设为i = 1,i变为1 + 1 = 2。结果,值20将被放置到列A的五倍(未6因为Excel VBA停止时i等于6)。

2.在A列输入一些数字

Any Number Of Rows

命令按钮在工作表,并添加以下代码行:

Dim i As Integer

i = 1

Do While Cells(i, 1).Value <> ""

Cells(i, 2).Value = Cells(i, 1).Value + 10

i = i + 1

Loop

结果当您单击工作表上的命令按钮:

Advanced Do While Loop

说明:只要将细胞(I,1)。价值不为空(<>手段不等于),Excel的VBA在行的交叉处输入值到单元i和第2列,即高于该值10在第i行和列的交叉点的单元1的Excel VBA当i等于7,因为将细胞(7,1)。价值是空的停止。这是通过在工作表中所有行数的一个伟大的方式来循环。