ExcelVBA的迷人之处在于它可以解决很多函数无法完成的功能,同时代码具有一定的复用性,可重复利用,逻辑直观明了,极具实用性,今天我们就来说说VBA中最简单的一个语句,IF语句。



ACCESS vba if else if语句格式 excel vba if else_VBA


单条件IF

语法:If 判断语句Then条件成立结果ELSE条件不成立结果END IF(其中ELSE及其后面的语句可以省略,只考虑条件成立的情况)

示例:

Sub IF语句()
If 1 > 2 Then MsgBox "1大于2"
Else MsgBox "1不大于2"
End If
End Sub

这段程序中,sub与end sub 代表程序的开始与结束,中间过程就是一段IF语句,If开头,end if 结尾,固定搭配(VBA中程序会自动纠正大小写,这点还是非常友善的);

这里的判断条件是【1>2】 ,显示条件是错的,1小于2,所以Then后面的语句无法执行,执行else后面的语句,在工作簿窗口中显示了“1不大于2”,msgbox关键字的功能就是在Excel工作簿界面弹出一个窗口,并显示输入的文字。

在代码视图中可以按【F8】按钮,一行一行执行代码。


ACCESS vba if else if语句格式 excel vba if else_经典案例_02

else后面的冒号可省略


IF语句中的else语句及其后面的内容可以省略,即【IF 判断条件 THEN 条件成立的结果 END IF】,只显示条件成立的结果,条件不成立,不做任何处理。

多条件IF

语法:

If判断语句Then条件成立结果

ElseIf判断语句Then条件成立结果

ElseIf判断语句Then条件成立结果

.................

ELSE条件不成立结果END IF

其中【ElseIf 判断语句 Then 条件成立结果】可以重复条件多次,这样就可以判断多次。

示例:

Sub IF语句()
If 1 > 2 Then MsgBox "1大于2"
ElseIf 1 = 2 Then MsgBox "1等于2"
Else MsgBox "1不大于2"
End If
End Sub

在上面单条件的基础上,我们多加入一个判断语句,程序在判断前面两个条件都不满足之后直接执行了else语句后面的程序。


ACCESS vba if else if语句格式 excel vba if else_经典案例_03


有必要强调的一点是:

if条件是可以用and和or连接使用的,如:

Sub IF语句()
If 1 > 2 Or 1 > 0 Then MsgBox "1大于2或者1大于0"
Else MsgBox "1不大于2也不大于0"
End If
End Sub

运行程序会显示"1大于2或者1大于0",因为1大于0成立。

经典案例——多条件判断学生成绩

在介绍完IF语句的基本用法之后,我们在看一个IF语句在Excel中的一个经典案例。

根据学生分数,按照右边的判断标准来确定学生成绩,如果用Excel函数IF函数的话,需要嵌套4个if语句,繁琐且容易出错,这里我们用VBA里面的IF语句,逐句书写,条理清晰,一键判断。


ACCESS vba if else if语句格式 excel vba if else_经典案例_04


代码明细如图中所示,其中的for ......next是个循环语句,不是今天介绍的重点,感兴趣的小伙伴可以留意后面的教程;cells代表单个单元格的意思,cells(1,2)代表着单元格第一行第二列,依次类推。

代码逻辑基本同多条件判断,输入完代码之后,直接点击运行程序按钮,可以发现,工作簿成绩列已经被输入正确内容!


ACCESS vba if else if语句格式 excel vba if else_经典案例_05


小结

上面介绍了IF语句的具体用法,以及IF语句在Excel工作簿中的经典案例,小伙伴们学会了吗?欢迎留言探讨。

如果觉得有用,欢迎关注我,定期分享数据小技巧。