Excel的VBA循环
单回路| 链接:#双回路[双循环]| 链接:#三环路[三重循环]| 链接:#做-while循环[do while循环]
循环是最强大的编程技术之一。在Excel VBA中环路,您可以遍历一个范围只有几码线的细胞。
单回路
可以通过细胞的一维范围使用单个循环来循环。
命令按钮在工作表,并添加以下代码行:
Dim i As Integer For i = 1 To 6 Cells(i, 1).Value = 100 Next i
结果当您单击工作表上的命令按钮:
说明:对于和下一步之间的行代码将被执行六次。对于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
结果当您单击工作表上的命令按钮:
说明:对于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
结果当您单击工作表上的命令按钮:
说明:只要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列输入一些数字
命令按钮在工作表,并添加以下代码行:
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
结果当您单击工作表上的命令按钮:
说明:只要将细胞(I,1)。价值不为空(<>手段不等于),Excel的VBA在行的交叉处输入值到单元i和第2列,即高于该值10在第i行和列的交叉点的单元1的Excel VBA当i等于7,因为将细胞(7,1)。价值是空的停止。这是通过在工作表中所有行数的一个伟大的方式来循环。