循环是最强大的编程技术之一。一个循环在Excel VBA中,您可以遍历一个范围只有几码线的细胞。
单回路
您可以使用单个循环遍历一维范围的单元格。
在您的工作表上放置一个命令按钮,并添加以下代码行:
。值 = 100 下一页 i
单击工作表上的命令按钮时的结果:
说明:For和Next之间的代码行将执行六次。对于i = 1,Excel VBA在第1行和第1列的交点处的单元格中输入值100。当Excel VBA到达Next i时,它将i加1并跳回到For语句。对于i = 2,Excel VBA在第2行和第1列的交点处的单元格中输入值100,依此类推。
注意:最好始终在For和Next单词之间缩进(制表)代码。这使您的代码更易于阅读。
双环
您可以使用双循环遍历二维范围的单元格。
在您的工作表上放置一个命令按钮,并添加以下代码行:
对于 i = 1 到 6
对于 j = 1 到 2个像元
(i,j)。值= 100
下一个 j
下一个 i
单击工作表上的命令按钮时的结果:
说明:对于i = 1和j = 1,Excel VBA在行1和列1的交点处的单元格中输入值100。当Excel VBA到达Next j时,它将j增加1并跳回到For j语句。对于i = 1和j = 2,Excel VBA将值100输入到行1和列2的交点处的单元格中。接下来,Excel VBA忽略Next j,因为j仅从1到2运行。当Excel VBA到达Next i时,它将i加1,然后跳回到For i语句。对于i = 2和j = 1,Excel VBA将值100输入到第2行与第1列的交点处,依此类推。
三重循环
您可以使用三重循环在多个Excel工作表上循环浏览二维范围。
在您的工作表上放置一个命令按钮,并添加以下代码行:
对于 c = 1 到 3
对于 i = 1 到 6
对于 j = 1 到 2
工作表(c).Cells(i,j).Value = 100
下一页 j
下一页 i
下一页 C
说明:与double循环的代码相比,唯一的变化是我们增加了一个循环并添加了Worksheets(c)。在单元格前面,以获取c = 1的第一张图纸的二维范围,c = 2的第二张图纸和c = 3的第三张图纸的二维范围。下载Excel文件以查看此结果。
循环执行
除了For Next循环外,Excel VBA中还有其他循环。例如,“ Do While循环”。只要“ Do While”之后的部分为真,将重复执行“ Do While”和“ Loop”之间的代码。
1. 在工作表上放置一个命令按钮,并添加以下代码行:
I = 1
待办事项 虽然我<6个
细胞(I,1)。价值= 20
I = I + 1
循环
单击工作表上的命令按钮时的结果:
说明:只要i小于6,Excel VBA就会在第i行与第1列的交点处的单元格中输入值20,并将i递增1。在Excel VBA(和其他编程语言)中,符号'= '意味着成为。这并不意味着平等。因此,i = i + 1意味着我成为i +1。换句话说:取i的当前值并加1。例如,如果i = 1,则i变为1 + 1 =2。结果,值20将被放置到列A中五次(不是六次,因为当i等于6时Excel VBA停止了)。
2.在A列中输入一些数字。
3. 在工作表上放置一个命令按钮,并添加以下代码行:
I = 1
待办事项 虽然细胞(I,1)。价值<> “”
细胞(1,2)。价值=细胞(I,1)。价值+ 10
I = I + 1
循环
单击工作表上的命令按钮时的结果:
说明:只要Cells(i,1).Value不为空(<>表示不等于),Excel VBA会将值输入到第i行与第2列相交处的单元格中,该值比该值高10在第i行和第1列相交处的单元格中,Excel VBA在i等于7时停止,因为Cells(7,1).Value为空。这是遍历工作表上任意行的好方法。