VB嵌套循环是指在一个循环中嵌入另一个循环,它可以帮助我们实现复杂的循环操作。VB嵌套循环的语法如下:
Do [Statements] Do [Statements] Loop Loop
在VB中,有三种不同的循环:For、Do While 和 Do Until。我们可以使用这些循环来创建嵌套循环。下面是一个使用For 循环创建的嵌套循环的例子:
Dim i, j As Integer For i = 1 To 10 For j = 1 To 10 Debug.Print i * j; '输出乘法表 Next j Next i
上面的代码将会输出乘法表(1*1, 1*2, 1*3, …… 10*10)。在这里,我们使用了两个For 循环来实现乘法表的输出。外部For 循环把i 的值从1 到10 递增;内部For 循环把j 的值从1 到10 递增。当i 等于1 时,内部For 循环会执行10 次;当i 等于2 时,内部For 循环会执行20 次……依此类推。
到目前为止,你已经在本章里尝试了很多种循环了,每种过程示范每个循环结构的使用。然而,在编程中,一循环总是放在另外一循环中的。VB允许你将不同类型的循环(For和Do循环)“嵌套”在同一个过程里。当你编写循环嵌套时,请确保每个内部的循环在外部循环里面已经完成。另外,每个循环都必须有其自己独特的计数器变量。如果使用循环嵌套,你可以更有效地执行特定的任务。
下面显示的过程ColorLoop示范如何嵌套一个For…Next循环在另一个For…Next循环里面:
Sub ColorLoop()
Dim myRow As Integer
Dim myCol As Integer
Dim myColor As Integer
myColor = 0
For myRow = 1 To 8
For myCol = 1 To 7
Cells(myRow, myCol).Select
myColor = myColor + 1
With Selection.Interior
.ColorIndex = myColor
.Pattern = xlSolid
End With
Next myCol
Next myRow
End Sub
上面的过程ColorLoop使用了两个For…Next循环来改变工作表中前面八行和七列里的每个单元格的颜色。当外部的循环在追踪行号的时候,内部的循环在做更多的事情,它首先确定当前的列号,基于当前的行号的列号选择适当的单元格,然后给所选的单元格设置颜色。
内部的For…Next循环给工作表的第一行的七个单元格(A1, B1, C1, D1, E1, F1和G1)设置不同的颜色。当变量myCol大于7时,VB跳回外部循环并且变量myRow增加1,再回到内部循环去设置下一行单元格的颜色。当过程结束时,56个单元格(8*7)被设置了当前调色板上可用的所有颜色。第一个单元格,A1,被设置了黑色(颜色索引号为1),第二个单元格B1则被设置为白色了(颜色索引号为2)。每次单元格地址变化——Cells(myRow, myCol).Select——变量myColor的内容也会改变——myColor = myColor + 1
在本章里,你学习了如何在循环里重复一组代码。通过使用好几种类型的循环,你看到了每种循环
稍稍不同地进行重复。你有了经验后,你将更容易地选择合适的控制结构来执行你的任务。
在本教程后续的章节中,将会有更多的使用循环的例子。例如,在下章里,你将看到如何使用数组合嵌套的循环来创建一个VBA过程,该过程将帮你选择彩票号码。在下章里,你将学习如何处理大量的数据,而不会迷失在变量的海洋里。
文件和文件夹具有类似“只读”,“隐藏”,“系统”和“档案”的特点。这些特点就是属性。可以使用GetAttr函数来获得文件或文件...
Julia 是个灵活的动态语言,适合科学和数值计算,性能可与传统静态类型语言媲美。由于 Julia 的编译器与像 Python 或者 R 语言的...
Julia 提供一系列控制流:复合表达式 : begin 和 (;)条件求值 : if-elseif-else 和 ?: (ternary operator)短路求值 : , || 和...
在ASP.NETWebPages类参考手册中,我们列出了需要使用的一些方法,以及对这些方法的描述。 ASP.NET 类参考手册 方法描述AsBool(),...
语句在循环中会被重复执行。循环语句允许我们多次执行一个语句或语句组。 For 循环 如果您需要重复执行相同的语句,您可以设定一...