个性化阅读
专注于IT技术分析

VBA If Else If语句

点击下载

本文概述

如果然后, 如果然后其他和如果其他如果语句允许程序员控制脚本或其部分之一的执行流程。

下图是大多数编程语言中常见的结构形式。

VBA If Else If语句

1.如果则声明

If Then语句包含一个布尔表达式, 该布尔表达式允许一个或多个语句。

如果条件为True, 则执行If条件下的语句。如果条件为False, 则执行If循环之后的语句。

句法

If (Boolean_expression) Then
    Statement 1
    ........
    ........
    ........
    Statement n
End 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 = 1 Then 
    AlertLabel.ForeColor = "yellow" 
    AlertLabel.Font.Bold = True 
    AlertLabel.Font.Italic = True 
  End If 
End Sub

流程图

VBA If语句

让我们借助一个函数找到两个Excel之间最大的一个。

Private Sub If_demo_Click ()
     Dim x As Integer
     Dim y As Integer
     x = 20
     y = 10
     If 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 If
End Sub
VBA If语句

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

VBA If语句

2.如果则其他语句

If语句包含一个布尔表达式, 该布尔表达式允许一个或多个语句, 如果条件为True, 则执行If条件下的语句。如果条件为假, 则执行其他条件下的语句。

句法

If (Boolean_expression) Then
Statement 1
.........
.........
.........
Statement n
Else
Statement 1
.........
.........
Statement n
End If

根据以上语法, 你可以根据条件的结果执行不同的任务。

例如:

Sub evenOdd ()
If Range ("A1") mod 2 = 0 Then
MsgBox "A1 is even"
Else
MsgBox "A1 is odd"
End If
End Sub
VBA否则声明

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

VBA否则声明

如果指定条件的结果为true, 而另一组代码的值为false, 则If ThenElse语句将执行一组代码。

If Then Else语句是excel中的内置函数, 被归类为逻辑函数。它也可以在excel中用作VBA函数。你可以在通过Microsoft Visual Basic编辑器输入的宏代码中使用此功能。

流程图

VBA否则声明

让我们借助一个函数找到两个Excel之间最大的一个。

Private Sub If_demo_Click ()
Dim x As Integer
Dim y As Integer
x = 20
y = 40
If x > y Then 
MsgBox "x is greater than y"
Else
MsgBox "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 String
Score = Range ("A1").Value
If score >= 60 Then
Result = "Pass"
Else
Result = "Fail"
End If
Range ("B1").Value = result

如果分数大于或等于60, 则Excel VBA作为结果返回通过, 否则Excel VBA返回失败。


3. If ElseIf语句

If语句允许一个或多个包含布尔表达式的If Else语句。然后是默认的Else语句, 当所有语句变为False时执行。

句法

If (Boolean_expression) Then
Statement 1
........
........
........
Statement n
ElseIf (Boolean_expression) Then
Statement 1
.........
.........
Statement n
ElseIf (Boolean_expression) Then
Statement 1
.........
.........
Statement n
Else
Statement 1
.........
.........
Statement n
End If

并非所有条件都可以简化为两个简单的陈述。你的代码中还有两个以上的选择。在这种情况下, 可以使用ElseIf语句。

你可以使用一个或两个以上ElseIf部分, 如上面的语法所示, 可以根据需要使用任意多个部分。

流程图

VBA If Else If语句

让我们借助一个函数找到两个Excel之间最大的一个。

Private Sub If_demo_Click ()
Dim x As Integer
Dim y As Integer
x = 40
y = 40
If x > y Then 
MsgBox "x is greater than y"
ElseIf y > x Then
MsgBox "y is greater than x"
Else
MsgBox "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 If

End Sub
VBA If Else If语句

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

VBA If Else If语句

在所有三个按钮或你在代码中指定的任何键中按任意一个按钮后, 你将获得以下输出:

VBA If Else If语句

赞(0)
未经允许不得转载:srcmini » VBA If Else If语句

相关推荐

评论 抢沙发

评论前必须登录!