ACCESS VBA哪个循环速度最快_编程语言

在上次for循环分享完后,有同学给我发私信说“猴子,上次那个for循环用着确实挺香,但是我每次都得修改那个循环的次数,这样挺麻烦的,有没有那种更智能的语法呢?”

那只有while循环结构」能够满足你的需求了。

不用说,又一个经典的天台式微笑上扬我的嘴角。

客官切莫着急,且听猴子娓娓道来~

1.whileE语法结构

ACCESS VBA哪个循环速度最快_编程语言_02

图片展示了「WHILE循环结构」的2种用法,都表达了如果符合判断条件,那么执行循环体内的其他语句,否则直接结束上述循环。

用法1是由关键字「WHILE」和「WEND」组成,而用法2由关键字「DO WHILE」和「LOOP」组成,二者表达意思一样。由于2的用法更加丰富和灵活,因此我们见到它的频率也更高些。

上面说了一些比较理论的东西,我们上案例实操一下。

2.while案例实操

案例:根据右侧的富豪等级排名规则,判断左侧各富豪的富豪尊称,将答案写在D列单元格。(实际工作中数据会非常多,这里仅以10条数据作为演示)

ACCESS VBA哪个循环速度最快_excel_03

思路分析:由于数据行数非常多,我们无法预知有多少数据,因此我们需要采用「WHILE循环结构」。

然后用「IF分支结构」根据右侧排名规则进行判断,将判断结果写入左侧D列。由于既涉及到循环,又涉及到判断,所以这种业务需求要使用「嵌套结构」。

ACCESS VBA哪个循环速度最快_go_04

根据上文的代码,我们模拟一下这个小程序的运行过程:

1)程序读取第1、2行

ACCESS VBA哪个循环速度最快_编程语言_05

程序使用了「强制申明」,定义了变量i且赋予其初始值为3

2)程序执行WHILE循环体

ACCESS VBA哪个循环速度最快_编程语言_06

程序读取「WHILE Cells(i, 3) <> ""」语句时,由于「i=3」,因此可以翻译为:单元格C3的值是否为空。通过查看左侧发现「单元格C3=1447」,不为空。于是,执行WHILE循环体内的IF条件语句。

ACCESS VBA哪个循环速度最快_数据分析_07

然后,执行IF语句,通过左侧可以看到「单元格C3=1447」,大于1000,因此接着执行下一句。

ACCESS VBA哪个循环速度最快_数据分析_08

最终将第1个判断结果写入到D3单元格内。

直到程序执行到,「i = 13」时,通过作图看到「单元格C13 = ""」,此时跳出WHILE循环,由于下面没有其他语句,所以执行End Sub程序结束。

ACCESS VBA哪个循环速度最快_ACCESS VBA哪个循环速度最快_09

3.总结

1)通过以上案例可以发现,当我们无法预知数据的总行数,且又需要使用循环挨个进行判断时,这种业务场景就可以使用「WHILE循环结构」。

2)WHILE循环结构分为2大类语法,一种是「WHILE…END」,另一种是「DO WHILE…LOOP」。

好了,这个懒人智能循环结构,你学会了吗?