视频加载中...

工作中我们经常遇到重复性强的工作方式,依靠excel处理数据固然便捷,但是重复性操作某一件事的时候难免会枯燥乏味,有什么办法可以形成固定的模式,以后遇到此类工作便可以瞬间解决的方法吗?

答案是肯定的,我们可以制作自己的模板,或函数,或代码。

Waht?

代码?

你不是在开玩笑吧,我的英语水平就没及格过,你给我说代码?

这肯定是很多不了解代码童鞋的想法,其实不然,excel中的代码并不是那么难,今天小编就九九乘法表给大家详细解说代码的奥秘,让你看过后不再茫然,也能写出自己的代码。

视频的操作是由代码完成的,是不是很快?相比于手工操作,快了N倍,完整的代码如下:

Sub 乘法表()

Dim a%, b%

Range("a1:i9").Clear

For a = 1 To 9

For b = 1 To 9

If a >= b Then

Cells(a, b) = b & "×" & a & "=" & a * b

Else

Exit For

End If

Next

Next

End Sub

不要头晕,耐心看下去,你会看明白的

代码都是一层一层的,我们剖开来说;

1、首先sub 乘法表()指的是代码的开始,命名为乘法表,也可以命名为其他,乘法表三个字就是名字,可以任意改变

end是代码结束,完成所有操作,结束过程

这是一个完整代码不可缺少的骨架

2、然后我们理清思路,先弄清楚乘法表的原理以及规律:

横向看:

是由 1、2、3……9×行数

竖向看:

是由 列数×1、2、3……9

而且每当行数>列数,后面的数据就不要了,就如下图一样



规律就是这样,大家都能明白,那么我们如何给代码发出命令呢?

3、具体解释

Dim a%, b%

VBA中,dim表示声明变量,是告诉后面的同学,这是一个可以变化的整数数字

For a = 1 To 9

next

for 表示循环的意思,next表示结束,和sub,end是一个意思;

a = 1 To 9

就是说我让a在1-9之间循环,第一次为1,第二次为2,第三次为3....第九次为9

简言之,就是行数从1到9

同理

For b = 1 To 9

就是列数从1到9

可以看到,有两个for循环,一个在前,一个在后,

表示的是:当行数=1的时候,列数要从1到9循环一遍,循环完之后行数开始为2, 列数再次循环一遍,直到行数为9的时候,循环完毕

Cells(a, b) = b & "×" & a & "=" & a * b

注释:cells(行,列)——单元格位置

&——连接符,例如 你&好,表示你好

文字表示就是:行数×列数=积

为什么要这样写呢?

因为如果这样写的话:b × a = a * b ,出现的结果就是积=积的效果,1=1,2=2,3=3这个样子,“”包裹起来,就是字符,不会参与数值的计算,就会保留1×1=1这样的格式

运行代码后就是下面这个样子:

问题又来了,不是说行数>列数的时候,后面的就不要了吗?这不是还在

不要着急,乘法表的大体样式已经出来了,我们在进行一个判断,把不需要的让他不要出现,就是这一个步骤:‘——文字注释

If a >= b Then‘如果行数>列数,那么

Cells(a, b) = b & "×" & a & "=" & a * b

’目标单元格的内容=行数×列数=积,

Cells(1, 1)——1行1列=A1单元格,

Cells(1, 2)——1行2列=A2单元格,

Cells(1, 3)——1行3列=A3单元格

Else ’否则

Exit For‘退出循环,即退出列数的循环,如果行数=2,那么到2×2=4之 后就不要了,开始循环行数=3的计算

End If ’结束判断

白话就是,如果行数大于等于列数了,继续执行,否则就退出当前循环

再次运行之后,效果如下:



已经成型了,这时候细心的同学会发现,还有一行代码没有说呢,Range("a1:i9").Clear表示的是什么意思?

range()——选择的区域

clear——清除目标区域所有内容

select——选择=selection

详细点的写法是:Range("a1:i9").select

selection.Clear

整体来说,它的职责是,在运行前,把a1:i9的单元格区域所有内容进行清空,然后执行代码

至此,代码解释完毕,有没有看明白呢?

在写一段代码之前我们须先弄清楚它的原理,然后按照步骤进行书写,最后进行优化

最后呢,为了让代码执行起来更为方便,我们可以插入一个文本框或者图片等,

右键-指定宏,我们选择他的名字,也就是乘法表,就把代码赋给了图片,我们点击图片的时候就会执行代码

教程采用wps表格完成,excel宏可以直接用,wps需要安装一个插件,代码在文中,有兴趣的同学可以复制过去尝试一下,大家互相交流

需要插件可以关注后私信回复:宏插件

即可免费获取