分享

VBA程序控制结构示例-九九乘法表

 L罗乐 2018-06-23

大家周末好,本节将以制作九九乘法表为例,来巩固循环结构和判断结构的嵌套应用。下面先演示下最后的效果。



实现九九乘法表的代码相对简单,但涉及结构嵌套很典型,希望通过整个实例可以帮助理解程序结构嵌套。

首先要说明一点没有介绍过的知识,即单元格的cells(行号,列号)属性表示方法,参数分别行号和列号。且列号以数字表示而非字母。比如表示第B列第5行的单元格,为cells(5,2),数字方便使用变量作为参数。而之前提过的单元格range属性,则是常规的range('b5')来表示。

那么下面我们就分步骤来看下如何实现九九乘法表?


1、双循环嵌套


首先分析九九乘法表,实质是一组1至9的数字与另一组1至9的数字,分别两两相乘,并得到相乘的结果。

由于两组数的值均是从1到9,可以联想到,利用for...next循环让两个变量分别从1至9,通过双循环嵌套来实现数字两两相乘。

如下图所示,立即窗口打印的字符是 i, 'X', j, '='; i * j。即参数i 、字符X 、参数j 、字符=、 i和j相乘的结果。



2、判断结构嵌套


上一步利用双循环嵌套,实现了1-9内的数值两两相乘,最后的表达式也有了雏形,但是在得到的表达式中有重复相乘的情况。比如i=1、j=9时,结果是1X9=9。而i=9、j=1时结果9X1=9,两者保留其一即可。需要设定判断条件去掉重复表达式。

分析九九乘法表可以发现一个规律,即被乘数都是大于或等于乘数的时候才显示的。据此就可以设定当i>=j为条件,在第二个for循环中嵌套if...then语句,(通常书写时要缩进)符合i>=j时才在立即窗口中显示。



3、单元格中显示结果


经过上面两步后,已经获得需要的表达式,现在需要在单元格中显示,就利用单元格cells属性,使用i和j两个变量值分别作为行号和列号的参数,即 Cells(i, j) = i & 'X' & j & '=' & i * j 。

这里变量不需要英文引号,而固定的字符都需要用英文引号括起来,字符与变量之间都需要用连接符&连接,注意变量与&之间需要有空格。比如当i=1,j=2时,结果就是cells(1,2)单元格中显示1X2=2。




下面让我们看下完整的代码,可以自行推演一下代码的运行(示例中加入了表单控件,指定宏,点击即可生成九九乘法表。)



注意代码中注意结构开始和结束对应,判断结构if与end if对应,循环结构for与next对应完整,同时next循环的两个变量嵌套不要颠倒位置,比如for j循环以next  j结尾。

Cells(i, j) = i & 'X' & j & '=' & i * j 其中变量不需要英文引号,而固定的字符都需要用英文引号括起来,字符与变量之间都需要用连接符&连接,变量与连接符&之间需要有空格。




示例涉及了循环和判断结构的相互嵌套,希望有助于学习程序控制结构,对于指定的数值的乘法表可以当作课后作业,有问题可以给我留言,祝大家学习愉快。




Live and Learn

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多