VBA If Else If语句

本文概述

  • 1.如果则声明
  • 2. If Then Else陈述
  • 3. If ElseIf语句
如果然后, 如果然后其他和如果其他如果语句允许程序员控制脚本或其部分之一的执行流程。
下图是大多数编程语言中常见的结构形式。
VBA If Else If语句

文章图片
1.如果则声明 If Then语句包含一个布尔表达式, 该布尔表达式允许一个或多个语句。
如果条件为True, 则执行If条件下的语句。如果条件为False, 则执行If循环之后的语句。
句法
If (Boolean_expression) ThenStatement 1........................Statement nEnd If

要在条件为True时运行一条语句, 我们可以使用If语句的单行语法。
例如:
Sub FixDate () myDate = #10/03/1997# If myDate < Now Then myDate = Now End Sub

而要运行多行代码, 则可以使用多行语法。此语法包括End If语句。
例如:
Sub AlertUser (value as Long) If value = http://www.srcmini.com/1 Then AlertLabel.ForeColor ="yellow" AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True End If End Sub

流程图
VBA If Else If语句

文章图片

让我们借助一个函数找到两个Excel之间最大的一个。
Private Sub If_demo_Click ()Dim x As IntegerDim y As Integerx = 20y = 10If x > y Then MsgBox "x is greater than y"End If End Sub

之后, 执行上面的代码, 你将获得如下输出:
x is greater than y

这是If Then语句的更多示例。此VBA代码正在检查指定条件的评估结果为True还是False。
当条件评估为True时, 你仅指定了要完成的步骤。在这种情况下, 代码的结果将在屏幕上显示一个MsgBox。
如果条件的计算结果为False, 则VBA代码将不执行任何操作, 并且将立即跳过该行。
例如:
Sub evenOdd ()If Range ("X1") Mod 2 = 0 Then MsgBox "X1 is even"End IfEnd Sub

VBA If Else If语句

文章图片
在上面的示例中, 如果excel单元格中包含的数字除以2, 其余数为零, 则excel将显示一个MsgBox, 告诉该数字为偶数。
VBA If Else If语句

文章图片
2.如果则其他语句 If语句包含一个布尔表达式, 该布尔表达式允许一个或多个语句, 如果条件为True, 则执行If条件下的语句。如果条件为假, 则执行其他条件下的语句。
句法
If (Boolean_expression) ThenStatement 1...........................Statement nElseStatement 1..................Statement nEnd If

根据以上语法, 你可以根据条件的结果执行不同的任务。
例如:
Sub evenOdd ()If Range ("A1") mod 2 = 0 ThenMsgBox "A1 is even"ElseMsgBox "A1 is odd"End IfEnd Sub

VBA If Else If语句

文章图片
现在, 当你运行VBA代码时, 无论A1中的数值是多少, 都将获得输出。你可以在上面的代码的以下屏幕截图中看到输出。
VBA If Else If语句

文章图片
【VBA If Else If语句】如果指定条件的结果为true, 而另一组代码的值为false, 则If ThenElse语句将执行一组代码。
If Then Else语句是excel中的内置函数, 被归类为逻辑函数。它也可以在excel中用作VBA函数。你可以在通过Microsoft Visual Basic编辑器输入的宏代码中使用此功能。
流程图
VBA If Else If语句

文章图片

让我们借助一个函数找到两个Excel之间最大的一个。
Private Sub If_demo_Click ()Dim x As IntegerDim y As Integerx = 20y = 40If x > y Then MsgBox "x is greater than y"ElseMsgBox "y is greater than x"End If End Sub

之后, 执行上面的代码, 你将获得如下输出:
y is greater than x

让我们再举一个例子来清除If Then Else语句。
例如, 假设你要在Excel VBA中打印学生成绩合格或不合格。
Dim score As Integer, result As StringScore = Range ("A1").ValueIf score > = 60 ThenResult = "Pass"ElseResult = "Fail"End IfRange ("B1").Value = http://www.srcmini.com/result

如果分数大于或等于60, 则Excel VBA作为结果返回通过, 否则Excel VBA返回失败。
3. If ElseIf语句 If语句允许一个或多个包含布尔表达式的If Else语句。然后是默认的Else语句, 当所有语句变为False时执行。
句法
If (Boolean_expression) ThenStatement 1........................Statement nElseIf (Boolean_expression) ThenStatement 1..................Statement nElseIf (Boolean_expression) ThenStatement 1..................Statement nElseStatement 1..................Statement nEnd If

并非所有条件都可以简化为两个简单的陈述。你的代码中还有两个以上的选择。在这种情况下, 可以使用ElseIf语句。
你可以使用一个或两个以上ElseIf部分, 如上面的语法所示, 可以根据需要使用任意多个部分。
流程图
VBA If Else If语句

文章图片

让我们借助一个函数找到两个Excel之间最大的一个。
Private Sub If_demo_Click ()Dim x As IntegerDim y As Integerx = 40y = 40If x > y Then MsgBox "x is greater than y"ElseIf y > x ThenMsgBox "y is greater than x"ElseMsgBox "x and y are Equal"End If End Sub

之后, 执行上面的代码, 你将获得如下输出:
x and y are Equal

让我们来看一下If ElseIf语句的更多示例。
例如, 假设你有一个带有“是”, “否”和“取消”选项的三个按钮对话框。
如果用户按下按钮, 则将获取按钮值并向用户显示一条消息, 告知用户按下了哪个按钮。
为此, VBA Else If语句的用法如下:
Sub Macro1() btnVal = MsgBox("Press a button and program will tell which button was pressed?", 3, "Demo") If btnVal = 1 Then MsgBox "User pressed Yes!" ElseIf btnVal = 2 Then MsgBox "User Pressed No!" Else MsgBox "User Pressed Cancel!" End IfEnd Sub

VBA If Else If语句

文章图片
你可以看到, 如何在If和ElseIf语句中评估btnVal变量, 然后通过另一个对话框将相应的消息发送给用户。
VBA If Else If语句

文章图片
在所有三个按钮或你在代码中指定的任何键中按任意一个按钮后, 你将获得以下输出:
VBA If Else If语句

文章图片

    推荐阅读