大家好,我是冷水泡茶,最近我们分享了几篇Excel VBA教程【循环语句】、【数组(1)】、【数组(2)】,说是教程,实在有点勉强,仅仅是我有限认知的表达。其实,我是不太愿意写这种所谓的教程,一方面觉得自己掌握的知识不够全面,另一方面,写这种东西实在枯燥无聊。但是,每天分享一个案例也是比较困难的,前面分享了很多,自己能想到、用到的案例已经写得差不多了,有几个计划中的案例处于停滞状态,主要是因为工作量都不小,名字中都带有什么什么“系统”,比如,“印章管理系统”,这个早有打算,目前只完成大概三分之一的工作量吧;其他的基本是处于一个空想阶段,“预算管理系统”、“人事管理系统”、“进销存管理系统”、“电子书管理系统”......今天想到了这些,相当于先拉个清单吧。另外,在论坛上也不太容易碰到合适的、有意思的案例,要么太麻烦,要么太简单。所以呢,就准备写一些概念性的东西,一来对前期分享的案例中涉及到的方法、技巧做一个梳理、总结;二来作为公众号的素材资源,有案例我们就分享案例,没有案例我们就拿教程来凑,尽量保持日更。在VBA中,我们利用条件判断语句来执行不同的代码,最终形成我们所需要的结果。条件判断语句有两种:IF...THEN语句、SELECT CASE语句。2、满足某一个条件时,执行代码A,否则执行代码B:IF A>B THEN
C=A
ELSE
C=B
END IF
3、满足条件A时,执行代码A,否则,若满足条件B,执行代码B,否则,执行代码C:IF A>B THEN
C=A
ELSEIF D>B THEN
C=D
ELSE
C=B
END IF
IF A>B THEN
ELSE
C=B
END IF
还别说,这种形式我也写过。我们把条件反过来写,就顺当多了:IF NOT A>B THEN
C=B
END IF
之所以出现这样的情况,我想可能是“条件表达式”先入为主,想到一个表达式,就接着往下写,当条件为真时,啥也不用做,就没有代码,接着,当条件为假时,用一个ELSE分支语句。当然,结果是没错,逻辑上也没有什么不妥。只是代码有点啰嗦,不够简洁。IF A>B THEN
IF D>A THEN
C=D
END IF
ELSE
C=B
END IF
SELECT CASE 变量A
CASE 值1
...
CASE 值2
...
CASE ELSE
...
END SELECT
就是根据变量的值,执行不同的代码。这里也可以改写成IF...ELSE...END IF的结构IF 变量A=值1 THEN
...
ELSEIF 变量A=值2 THEN
...
ELSE
...
END IF
就我个人而言,IF语句用得比较多,只要逻辑通顺,哪种方式都行。
三、条件判断中的逻辑运算符
1、AND,连接两个或两个以上条件,只有它们都满足、都为真时,整个条件表达式的结果才为真。
2、OR,连接两个或两个以上条件,只要有一个满足,整个条件表达式的结果即为真。
3、NOT,将真变为假,将假变为真。
4、(),当有AND与多个OR条件组合的时候,把OR条件放到括号里,会改变整个条件表达式的结果。
四、IF条件取值问题
1、当条件表达式中,有比较运算符,如“=”,“>”、“<”等时,其结果为“TRUE” 或者“FALSE”,即真或假。
2、当条件表达式是一个数值时,0为假,非0为真(负数也为真,这是不是有点不好理解?)。
五、总结
条件语句相对比较简单,经常会跟循环结合使用,提取符合条件的数据。具体例子我们就不举了,基本上每一个案例中都会有IF条件语句。
好,今天就到这吧。