For循环是所有编程里最常用的语句之一,把for循环弄清楚了,其它的也就清楚了。
基本所有语法都是可以嵌套使用的,嵌套的语法都是从里到外,一层一层往外执行,除非另外指定中转或终止命令。
for 语句基本语法:
for 变量名 = 开始值 to 结束值 step(步进值),步进值省略默认为1
运行结果Sub 九九乘法表()
r = Selection.Row
c = Selection.Column
'----------上面两行是用于获取当前选择的单元格或区域的左上角第一个单元格的所在行数或列数,以方法指定在哪里生成下面的九九乘法表。
For x = 1 To 9 '前面的x是变量,代表当前循环时的数值。
'--------------------------------里层的FOR循环从1到9,如果后面不指定step步进值,默认每次加1,共运行9次后,外层FOR语句加1,然后里层再从1-9运行一遍,一直循环,直到最外层运行结束,总共运行九九八十一次。中途可以配合if判定语句跳转或终止循环。step步进值可以是任意整数,可以是正数或负数,只要步进值在前面的数值范围内就可以。比如
For y = 1 To 9 '前面的y是变量,代表当前循环时的数值。
Cells(x + r - 1, y + c - 1) = y & " x " & x & " = " & x * y
Next
'----------------------------
Next
End Sub
运行结果'在循环的语句中,可以通过加入一些变量,以达到想要的效果,比如这里加入一个变量i,就可以把一些1x2=2和2x1=2这些实际相当于重复的数据去掉去掉其它一个。同时了可以通过加入的变量用于改变输出的方向,或间隔等。
Sub 九九乘法表2()
r = Selection.Row
c = Selection.Column
i = 1
For x = 1 To 9
For y = i To 9
Cells(x + r - 1, y + c - 1) = x & " x " & y & " = " & x * y
Next
i = i + 1
Next
End Sub
运行结果Sub 九九乘法3表()
r = Selection.Row
c = Selection.Column
i = 1
For y = 1 To 9
For x = i To 9
Cells(x + r - 1, y + c - 1) = y & " x " & x & " = " & x * y
Next
i = i + 1
Next
End Sub
运行结果for语句并不是只是从小到大的循环,也可以从大到小,后面的步进值也可以是负值。比如下面的9 to i step(-1),当i为1的时候就是,从9到1,每次步进值为-1,就是每次减1。
Sub 九九乘法表4()
r = Selection.Row
c = Selection.Column
i = 1
For y = 1 To 9
For x = 9 To i Step (-1)
Cells(r - x + 9, y + c - 1) = y & " x " & x & " = " & y * x
Next
i = i + 1
Next
End Sub
运行结果Sub 九九乘法表5()
r = Selection.Row
c = Selection.Column
i = 1
For x = 9 To 1 Step (-1)
For y = i To 9
Cells(x + r - 9, y + c - 1) = i & " x " & y & " = " & i * y
Next
i = i + 1
Next
End Sub