这节我们用VBA来做个九九乘法表:
![50fa0fc7dd68a97cc3632bada4d975bc.gif](https://i-blog.csdnimg.cn/blog_migrate/428b7089856195fcc1ef7bb6cf66ffa5.gif)
这感觉好酸爽啊!
VBA代码如下:
Sub 九九乘法表()
Dim num1%
Dim num2%
For num1 = 1 To 9
For num2 = 1 To 9
If num2 > num1 Then
Exit For
Else
Cells(num1, num2) = num2 & "x" & num1 & "= " & num1 * num2
End If
Next num2
Next num1
End Sub
我们来剖析下具体的过程:
1、九九乘法表一共有两个变量相乘,所以我们定义两个变量num1,num2;
Sub 九九乘法表()
Dim num1%
Dim num2%
……
End Sub
2、两个变量都从1循环到9,所以需要两个FOR NEXT 语句
Sub 九九乘法表()
Dim num1%
Dim num2%
For num1 = 1 To 9
For num2 = 1 To 9
……
Next num2
Next num1
End Sub
这里一定要注意顺序,里外层的关系,我们可以用msgbox观察下两个变量的循环规律。
首先循环最里面的num2,num2从1循环到9,然后再循环num1,num1循环一次,num2要循环9次。
![203b0d47ee92c660667c4a194fa7f1bb.gif](https://i-blog.csdnimg.cn/blog_migrate/bcd0ad00dec21732000bb3b734a8b26f.gif)
3、要把循环的这些内容放到单元格里,怎么操作呢?我们可以把两个变量当成是1行1列,1行2列,1行3列……
所以:
Sub 九九乘法表()
Dim num1%
Dim num2%
For num1 = 1 To 9
For num2 = 1 To 9
Cells(num1, num2) = num2 & "x" & num1 & "= " & num1 * num2
Next num2
Next num1
End Sub
运行后发现是这样的:
![5bcb44abab09399161c6aaa9fcf48b99.png](https://i-blog.csdnimg.cn/blog_migrate/0b584328097c314123eed2d57c8d13c1.jpeg)
4、为了规范,单元格为白色的部分是不需要的,而单元格底色为白色的都是num2大于num1的部分,所以来个判断语句,假如num2 > num1,退出FOR,这里的for是指num2的循环,否否则就Cells(num1, num2) = num2 & "x" & num1 & "= " & num1 * num2。
Sub 九九乘法表()
Dim num1%
Dim num2%
For num1 = 1 To 9
For num2 = 1 To 9
If num2 > num1 Then
Exit For
Else
Cells(num1, num2) = num2 & "x" & num1 & "= " & num1 * num2
End If
Next num2
Next num1
End Sub
6、上面有个判断语句,我们是不是可以用IFF代替呢?我也是初学VBA,用这种思路去学习也许能对所学知识加深了解。
Sub 函数法()
Dim num1%
Dim num2%
For num1 = 1 To 9
For num2 = 1 To 9
Cells(num1, num2) = VBA.IIf(num2 > num1, "", num2 & "x" & num1 & "= " & num1 * num2)
Next num2
Next num1
End Sub
这样写是不是更加简洁呢?
这节的分享就到这里,本节知识点,声明变量为整型的简便表达,for next里的循环以及运行的次序,判断语句IF else ,退出语句exit ,VBA函数IFF。
转自:宏Office