小兔网

单回路   |  双环   |  三重循环   |  循环执行

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

单回路

您可以使用单个循环遍历一维范围的单元格。

在您的工作表上放置一个命令按钮,并添加以下代码行:

对于 i = 1  6个像元     (i,1)的Dim i  整数

。值 = 100 下一页 i

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

Excel VBA中的单循环

说明: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单词之间缩进(制表)代码。这使您的代码更易于阅读。

双环

您可以使用双循环遍历二维范围的单元格。

在您的工作表上放置一个命令按钮,并添加以下代码行:

Dim i 作为 整数,j 作为 整数

对于 i = 1  6
    对于 j = 1  2个像元
        (i,j)。值= 100
    下一个 j
下一个 i

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

Excel VBA中的双循环

说明:对于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工作表上循环浏览二维范围。

在您的工作表上放置一个命令按钮,并添加以下代码行:

Dim c 作为 整数,i 作为 整数,j 作为 整数

对于 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
循环

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

进阶Do While循环

说明:只要Cells(i,1).Value不为空(<>表示不等于),Excel VBA会将值输入到第i行与第2列相交处的单元格中,该值比该值高10在第i行和第1列相交处的单元格中,Excel VBA在i等于7时停止,因为Cells(7,1).Value为空。这是遍历工作表上任意行的好方法。