编者按:大家好! 今天是VBA实用入门教程第四期。 我们将为大家带来VBA中最常见的语句之一——判断语句。 典型的判断语句有两种,分别是IF判断语句和判断语句。想要了解更多技巧,请收藏并关注
。
【前言】
上一篇文章中的循环语句同学们都学会了吗? 如果你还没有学会,你需要给自己施加更大的压力,因为你可能会再次输给别人。 生活就是这样。 短短几十年就在恍惚中过去了。 你总是可以用“没时间”、“不记得”等借口来欺骗自己,也可以“对自己狠一点”。 不管怎样,最终的结果是好是坏。 ,你需要自己去面对。
无论您是否学过,还有另一个重要的 EXCEL VBA 语句即将推出。 为什么来得这么快? 因为它是“循环语句”的CP——“判断语句”。 “循环”必须在实际工作中使用。 参见“判断”!
【文本】
在日常工作中,我们常常需要遍历众多“对象集合”中的每一个对象来达到数据处理的结果。 无论是EXCEL、ERP,甚至高级语言和JAVA都是如此。 还有循环语句结构,这是关系数据的处理特点。 但在我们的周期中,因为需求不同,并不是所有的数据内容都是我们需要的。
然后我们需要对每一行数据进行筛选,让计算机来帮我们判断。 如果需要则处理,如果不需要则PASS。
1. IF判断语句
其实判断语句大家应该都很熟悉,因为工作表函数中就包含了IF判断函数。 如此经典,VBA怎能放过。
1.用一个小案例来理解IF判断语句
(例1)需求,判断身份证号码的位数是否正确。
如果你看到这样一组号码,不管号码信息是否正确,只看位数,你很难知道是否是18位,所以用code就很方便了此时对其进行处理,如下:
sub判断ID号位数是否正确()
with(“IF判断语句”)
对于 i = 2 到 10
如果 Len(.Cells(i, 1)) = 18 那么
.Cells(i, 2) = "18 位"
万一
接下来我
结束于
结束子
【代码分析】
Line1:使用工作表“IF判断语句”作为代码中引用对象的统一父对象;
Line2:指定循环变量i的范围为2到10。因为我们是遍历单元格,逐行判断,所以循环变量应该以单元格的行号作为循环依据,所以是ROW2到ROW10;
Line3:Cells(i, 1)表示是某行与第一列的交集单元格。 当i变量为2,3,4,...,10时,对应的单元格地址为A2,A3,A4,...,A10。 使用LEN函数提取单元串的长度并判断是否等于18;
Line4:如果满足判断条件,则在Cells(i, 2)对应的B列单元格中输入“18位”;
Line5:判断语句的结束语句;
Line6:循环语句的结束语句;
第7行:With语句的结束语句。
2.IF判断语句的语法
从上面的示例1我们可以看到,当满足判断条件时,返回了相应的结果,但是留下了很多空单元格。 现在我们正式了解一下IF判断函数的语法,如下:
这就是IF判断语句的完整语法。 和IF函数一样,当满足一定程度的判断时,返回相应的结果,并跳出判断。 其中的语句相当于IF函数的嵌套使用,Else相当于IF函数。
3.通过案例学习IF判断语句
出于实际考虑,我们继续看两个案例,帮助大家更好地理解IF判断语句的用法,如下:
(例2)需求:判断A列的值的奇偶性,代码如下:
子奇偶校验()
与(“奇偶校验”)
a = .[A1].End(4).Row
对于 i = 2 至 a
如果 .Cells(i, 1) Mod 2 = 0 那么
.Cells(i, 2) = "偶数"
别的
.Cells(i, 2) = "奇数"
万一
接下来我
结束于
结束子
【代码分析】
Line1:使用工作表“parity”作为代码中引用对象的统一父对象;
Line2:使用单元格的End属性和Row属性找到数据区域最后一行的行号并将其赋值给变量a;
Line3:指定循环变量i的循环范围为2到a,循环每一行数据(不包括表头);
Line4:判断Cells(i,1)第一列的每个单元格除以2(Mod函数)是否等于0;
Line5:如果等于0,则对应的Cells(i,2)单元格被赋值为“even”;
Line6:否则,当不满足上述条件时;
Line7:对应的Cells(i,2)单元格被赋值为“odd”;
Line8:判断语句的结束语句;
第9行:循环语句的结束语句;
:With 语句的结束语句。
尖端
Mod 函数也出现在工作表函数中,但其语法在 EXCEL VBA 中有些不同。 我教学生一个方法来记忆:在VBA中你可以将其理解为“运算符号”,例如对于4/5、6*8、21-6等计算,余数为235 Mod 62,即表示 235 除以 62 的余数。
(例3)根据需求,大家的佣金按照制度进行。
不要以为我们一直在谈论基础知识。 VBA没有绝对的基础。 缺少任何一个环节都可能让你使用VBA不顺利。 我们现在就用判断语句来解决学生工作中的一个实际问题。想要学习更多技巧,请收藏并关注
。
数据来源就不用多说了,作者在之前的文章中已经讲了很多E图的表达方式,包括区间的写法。 言归正传,代码如下:
子佣金计算()
with (“计算佣金”)
a = .Range("A1").End(4).Row
对于 i = 2 至 a
如果 .Cells(i, 3) < 100 那么
.Cells(i, 4) = "销售额*85%*1%"
.Cells(i, 5) = .Cells(i, 3) * 0.85 * 0.01
.Cells(i, 3) >= 100 并且 .Cells(i, 3) < 200 然后
.Cells(i, 4) = "销售额*85%*2%"
.Cells(i, 5) = .Cells(i, 3) * 0.85 * 0.02
.Cells(i, 3) >= 200 且 .Cells(i, 3) < 500 然后
.Cells(i, 4) = "销售额*85%*3%"
.Cells(i, 5) = .Cells(i, 3) * 0.85 * 0.03
别的
.Cells(i, 4) = "销售额*80%*8%"
.Cells(i, 5) = .Cells(i, 3) * 0.8 * 0.08
万一
接下来我
结束于
结束子
这是IF判断语句最全面的写法,基本涵盖了与判断语句相关的所有内容。 由于篇幅限制,需要给同学们思考的空间,以上代码没有给出代码分析过程。 主要思想是IF(IF(IF))的嵌套使用。
尖端
如果需要满足两个条件,我们可以使用AND,它仍然和IF工作表函数相同,但不同的是语法是“条件1 AND 条件2 AND 条件N”; 如果有多个条件,则选择一个,只需使用 OR,“条件 1 OR 条件 2 OR 条件 N”; 如果是更复杂的情况,例如:(条件1 AND 条件2) OR 条件3,则表示条件1和条件2都满足,或者只有条件3是独立的。 满足。 这一逻辑过程可以举一反三。
2、判决书
因为IF函数已经深入人心,所以我们一开始就讲解了IF判断语句。 其实EXCEL VBA中判断语句还有另一种写法,那就是判断语句。 语法如下:
我们看一个案例来说明问题,考勤统计:
忽略缺勤和缺勤情况,这个案例只是为了说明判断语句的使用。 代码如下:
晚点和早点出发()
与(“出席”)
a = .[C1].End(4).Row
我 = 2
当我做的时候
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。