VBA掌握循环结构,包你效率提高500倍

VBA掌握循环结构,包你效率提高500倍

 

 

这是系列免费教程《Excel VBA:办公自动化》,还是老规矩,看看我们走到哪里了。

1.认识VBA:什么是VBA?

2.这些掌握了,你才敢说自己懂VBA

3.VBA变量5年踩坑吐血精华总结

4.VBA中重要的强制申明,谁看谁明白

VBA掌握循环结构,包你效率提高500倍

 

 

我们先看上次分享的案例题目。

 

在「单元格B2」输入不同的行号,点击「显示答案」按钮,计算「F列」和「H列」对应行号的乘积,并将每个乘积结果加上公共值「单元格B4」的50,将最终结果显示在相应的单元格。

VBA掌握循环结构,包你效率提高500倍

 

 

我们首先回顾一下上述的操作,我们先输入不同题号,然后点击宏按钮,整个过程需要2步。

 

如果题目只有10道,好像看起来没什么,但是如果题目有100道、1,000道或是更多的题目呢?

 

假设题目1,000道,输入题号+点击按钮2连操作你仅需要1s(那得多快的手速),全部操作完就是1,000s,也就约为17分钟。

 

如果这个题目的数字再进一步放大呢?我想时间成本就不可想象了。

 

其实,上述案例是我之前部门同事工作的简化版,他经常要面对机械重复、枯燥乏味的Excel表格操作。

 

当然了,如今的他早已摆脱当年的那种苦海~

 

如果你也想早日摆脱机械重复、枯燥乏味的Excel表格操作苦海,下面2个知识点你一定要掌握。

 

1.for循环

 

案例:不输入题号,仅点击1次「显示答案」按钮,所有题目答案自动计算后显示在「J列」

VBA掌握循环结构,包你效率提高500倍

 

 

 

我们来分析案例(仅以10道题目来分析)

VBA掌握循环结构,包你效率提高500倍

 

 

我们观察发现:行号是变化的,而且是「正向递增加1」的规律。

 

在《变量》分享那篇文章,我们将这些变化的行号数字更改为「变量」,用x代替,程序被精简为这样:

VBA掌握循环结构,包你效率提高500倍

 

 

那时,我们通过将「单元格B2」的值赋值给「变量x」,然后手动变更「单元格B2」的值,从而变更「变量x」的值,那么能不能让「变量x」完全自动变化呢?

 

我们对之前的代码小小改造一下,仅加2句「For循环结构」代码即可轻松实现一键自动计算上述案例答案:

VBA掌握循环结构,包你效率提高500倍

 

 

我们把上述代码单独拿出来,分析一下

VBA掌握循环结构,包你效率提高500倍

 

 

For循环主要分为3个部分,分别为:

 

(1)循环开始

标准的书写格式为「For xxx = xxx To xxx Step xxx」,表示的意思是「变量xxx」的值从xxx变化为xxx,每次增加xxx

VBA掌握循环结构,包你效率提高500倍

 

 

(2)循环内容

循环内容根据工作需求书写相关执行代码就好,一般都是循环的核心代码,比如这里的循环内容就是「J列某行单元格」=「F列某行单元格」*「H列某行单元格」+ 50

VBA掌握循环结构,包你效率提高500倍

 

 

(3)循环结束

标准的书写格式为「Next xxx」,表示的意思是「下一个xxx的值」

VBA掌握循环结构,包你效率提高500倍

 

 

[备注]

a.「Step」可以取正整数和负整数,也可以省略不写;当「Step」省略不写时,值默认为1。

b.「Next xxx」中的「变量 xxx」可以省略不写,但建议完整书写,不省略。

 

我们来模拟一下上述「For循环结构」的程序运行过程:

 

(1)程序读取「循环开始」语句「For x = 1 To 10 Step 1」

VBA掌握循环结构,包你效率提高500倍

 

 

由于我们使用了「For循环开始」,并且严格规定了「变量X」的值从1变为10,每次仅增加1,即:x可以取1 2 3 4 ...10。而本次「x = 1」

 

(2)读取第2句「循环内容」代码「Cells(x, 10) = Cells(x, 6) * Cells(x, 8) + h」

VBA掌握循环结构,包你效率提高500倍

 

 

由于第1句代码确定了「x = 1」,而「Cells(4, 2) = 50」以及「h = Cells(4, 2)」,那么「h = 50」。因此,上述代码可以翻译为:「单元格J1」= 「单元格H1」* 「单元格F1」+50。最后,程序到单元格获取对应的值即可。

 

(3)读取第3句「循环结束」代码「Next x」

VBA掌握循环结构,包你效率提高500倍

 

 

此时,「变量 x = 2」

 

(4)程序回到第1句读取「循环开始」语句「For x = 1 To 10 Step 1」

VBA掌握循环结构,包你效率提高500倍

 

 

我们可以看到此时程序自动返回「循环开始」的地方,由于此时「变量 x = 2」仍然符合「X 从 1 变为 10 每次增加1」这个区间,因此程序接着运行,一直等到「变量 x = 11」的时候,程序会跳出循环,执行下一个语句。

 

(5)我们看下最终的程序的执行结果

 

VBA掌握循环结构,包你效率提高500倍

 

 

 

看到这里我们大家也许就明白了,所谓的「For循环结构」就是:

提前设置一定的条件或规则,然后程序自动按照设定的条件或规则自动运行,等到不符合设定的条件或规则时,程序跳出循环结构,执行下一个句子。

 

那么,我们就可利用「For循环结构」这种符合条件自动运行的特性,根据工作场景书写相关代码即可。

 

2.代码排版

 

按照马斯洛的需求层次理论,我们在达到一定的需求层次之后,会追求更高的需求层次。

 

那么,这句话应用到VBA代码领域就是:在我们掌握了一定的代码基础之后,我们就希望掌握更强的VBA技能。(这些技能你只要跟着我们的VBA分享课一步一个脚印练习,一定能够惊叹自己的超能力)

 

但真正的VBA高手不仅取决于VBA代码实力,还取决于自己写的代码别人能不能看懂,也包括自己日后能不能看懂。(别问我为什么,因为我经历过翻译自己代码的痛苦)

 

VBA掌握循环结构,包你效率提高500倍

 

 

很明显,更喜欢右边的排版,因为它排版干净、代码从属关系清晰,更易阅读。

 

所以说,我们不仅要多金(技能强),还要帅气(排版好)

 

那么,如何实现上述帅气的排版呢?很简单,戳一下就可以

 

(1)按「Tab」代码缩进

VBA掌握循环结构,包你效率提高500倍

 

 

(2)点选VBE编辑器的缩进按钮

VBA掌握循环结构,包你效率提高500倍

 

 

正所谓:“帅气”VBA路,从Tab起步

 

3.总结

 

(1)For循环结构

 

提前设置一定的条件或规则,然后程序自动按照设定的条件或规则自动运行,等到不符合设定的条件或规则时,程序跳出循环结构,执行下一个句子。

VBA掌握循环结构,包你效率提高500倍

 

 

 

(2)VBA代码排版

 

“帅气”VBA路,从Tab起步

 

VBA掌握循环结构,包你效率提高500倍

 

 

 

推荐:人工智能时代的必学技能

 

VBA掌握循环结构,包你效率提高500倍

 

上一篇:bat打开excel并自动运行VBA程序


下一篇:使用VBA时不妨借力Excel催化剂的能力,让你的开发更加轻松便捷