Excel点点通
优秀的Excel资源分享网站

VBA IF THEN语句用法与案例教程

正常情况下,过程中的代码按照从上到下的顺序运行,但是可以在过程中加入控制结构来改变程序的运行流程。下面我们一起来看看VBA IF THEN语句用法与案例教程吧。

VBA IF THEN语句用法与案例教程

If Then结构用于根据条件的判断结果是否成立来选择执行不同的代码。如果判断结果为逻辑值True,则说明条件成立,如果为False则说明条件不成立。If Then判断结构可以分为以下3种形式:

1.只处理条件成立情况的If Then结构。
2.可以处理条件不成立情况的If Then结构。
3.可以处理多个条件的If Then结构。

一、只处理条件成立情况的If Then结构

If Then结构的最简单形式是单行的If Then语句,用于在条件成立时执行指定的代码。要检测的条件位于If关键字之后,要执行的代码位于Then关键字之后,格式如下:

If 要检测的条件 Then 条件成立时执行的代码

案例1:If条件成立时执行单条语句

下面的代码判断输入的用户名是否是“Admin”,如果是则显示欢迎信息。

Sub 显示欢迎信息()
Dim strUserName As String
strUserName = InputBox(“请输入用户名:”)
If strUserName = “Admin” Then MsgBox “hello ” & strUserName
End Sub

在上例中,只有输入大小写完全相同的“Admin”才会显示欢迎消息,这是因为VBA默认使用二进制方式对字符串进行比较。如果希望无论输入大小写形式的Admin都能被If语句判断为条件成立,则可以将If条件判断部分的代码改为以下两种形式之一,其中的Lcase和Ucase是VBA的两个内置函数,前者用于将文本转换为小写形式,后者用于将文本转换为大写形式。

If LCase(strUserName) = “admin”
If UCase(strUserName) = “ADMIN”

如果希望模块中的所有过程都使用不区分大小写形式的文本比较方式,则可以在模块顶部的声明部分输入下面的代码:

Option Compare Text

如果在条件成立时需要执行多行代码,则可以使用下面的If Then格式。此时在Then关键字之后没有任何代码,而将条件成立时要执行的代码放在If语句下面的一行或多行中,最后使用End If语句作为If Then结构的结束。不需要手动输入End If语句,只需先输入好If Then这条语句,然后按Enter键,Excel会自动添加End If语句。

If 要检测的条件 Then
条件成立时执行的代码
End If

案例2:If条件成立时执行多条语句

下面的代码是对上一个案例修改后的版本,如果用户输入正确的用户名,将在对话框中显示欢迎信息,并会记录用户的登录次数。声明intLogin变量时使用的是Static关键字,目的是在工作簿打开期间多次执行该过程时,intLogin变量的值可以持续累加,而不是在每次过程运行结束后自动归零。

Sub 显示欢迎信息()
Dim strUserName As String
Static intLogin As Integer
strUserName = InputBox(“请输入用户名:”)
If strUserName = “Admin” Then
MsgBox “hello ” & strUserName
intLogin = intLogin + 1
End If
End Sub

实际上单行的If Then结构也可以在满足条件时执行多条语句,只要使用冒号分隔多条语句即可,如下所示:

If strUserName = "Admin" Then MsgBox "hello " & strUserName: intLogin = intLogin + 1

二、同时处理条件成立和不成立两种情况的If Then结构

如果希望在条件成立和不成立时都执行相应的代码,则需要在If Then结构中使用Else子句。如果在条件成立和不成立时各执行一行代码,则可以使用单行的If Then Else结构,格式如下:
If 要检测的条件 Then 条件成立时执行的代码 Else 条件不成立时执行的代码案例2-22 同时处理If条件成立与不成立两种情况并执行单条语句
下面的代码判断输入的用户名是否是“Admin”,如果是则显示登录成功的信息,如果不是则显示出错信息。代码中使用strMessage变量存储在条件成立和不成立时在对话框中显示的不同信息,最后使用MsgBox函数显示该信息。

Sub 验证用户名()
Dim strUserName As String, strMessage As String
strUserName = InputBox(“请输入用户名:”)
If strUserName = “Admin” Then strMessage = “登录成功” Else strMessage = “用户名错误”
MsgBox strMessage
End Sub

如果在条件成立和不成立时要分别执行多行代码,则需要使用多行的If Then Else结构,格式如下:

If 要检测的条件 Then
条件成立时执行的代码
Else
条件不成立时执行的代码
End If

案例3:同时处理If条件成立与不成立两种情况并执行多条语句

下面的代码判断输入的用户名是否是“Admin”,如果是则显示登录成功的信息,如果不是则记录用户登录的次数,并显示包括已登录次数在内的登录失败的信息。

VBA IF THEN语句用法与案例教程(IF THEN多个结果)

三、处理多个条件的If Then结构

使用If Then结构还可以对多个条件进行判断,并根据判断结果执行不同的代码。处理多个条件的If Then结构可以将普通的If Then结构嵌套在另一个If Then结构中,可以嵌套任意数量的If Then结构,从而构成多层嵌套的If Then结构,如下所示,每个If Then结构都必须有对应的End If语句。

VBA IF THEN语句用法与案例教程(IF THEN多个结果)

案例4:多个If Then Else结构嵌套

下面的代码说明了If多条件判断第一种结构的用法,根据用户输入的不同内容而显示不同的信息。如果用户输入的是Admin,则显示“你好,管理员”;如果输入的是User,则显示“你好,普通用户”;否则会显示Else子句中的信息,即用户输入的实际用户名。

VBA IF THEN语句用法与案例教程(IF THEN多个结果)

还可以使用下面的If Then结构来处理多个条件,可以添加任意数量的ElseIf子句。

VBA IF THEN语句用法与案例教程(IF THEN多个结果)

案例5:使用If Then ElseIf处理多个条件

下面的代码使用If Then ElseIf结构进行了重新编写,实现与上一个案例相同的功能。

VBA IF THEN语句用法与案例教程

无论使用的是单条件判断还是多条件判断的If Then结构,都可以在If条件部分使用逻辑运算符组合多个条件,以实现同时满足多个条件才执行指定的代码。

案例6:使用逻辑运算符实现多条件判断

下面的代码检查用户输入的是否是“Admin”,以及登录次数是否未超过3次。由于在If条件部分使用了And逻辑运算符,因此只有同时满足两个条件,才会显示登录成功的信息,否则只要有一个条件不满足,就会显示用户名错误或已超过登录次数的信息。

VBA IF THEN语句用法与案例教程

总结:在VBA过程里面作决定的最简单的方法就是使用If…Then语句。假使你想要基于某个条件选择一个行动,那么你可以使用该结构。

赞(680)
未经允许不得转载:Excel点点通 » VBA IF THEN语句用法与案例教程

评论 抢沙发

评论前必须登录!

 

优秀的Excel在线学习和资源分享网站

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

Excel学习路线

登录

找回密码

注册