本文概述
- 1.如果则声明
- 2. If Then Else陈述
- 3. If ElseIf语句
下图是大多数编程语言中常见的结构形式。
文章图片
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
流程图
文章图片
例
让我们借助一个函数找到两个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
文章图片
在上面的示例中, 如果excel单元格中包含的数字除以2, 其余数为零, 则excel将显示一个MsgBox, 告诉该数字为偶数。
文章图片
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代码时, 无论A1中的数值是多少, 都将获得输出。你可以在上面的代码的以下屏幕截图中看到输出。
文章图片
【VBA If Else If语句】如果指定条件的结果为true, 而另一组代码的值为false, 则If ThenElse语句将执行一组代码。
If Then Else语句是excel中的内置函数, 被归类为逻辑函数。它也可以在excel中用作VBA函数。你可以在通过Microsoft Visual Basic编辑器输入的宏代码中使用此功能。
流程图
文章图片
例
让我们借助一个函数找到两个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部分, 如上面的语法所示, 可以根据需要使用任意多个部分。
流程图
文章图片
例
让我们借助一个函数找到两个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
文章图片
你可以看到, 如何在If和ElseIf语句中评估btnVal变量, 然后通过另一个对话框将相应的消息发送给用户。
文章图片
在所有三个按钮或你在代码中指定的任何键中按任意一个按钮后, 你将获得以下输出:
文章图片