📜  如何在 Excel VBA 中使用 If-Else-If 语句?

📅  最后修改于: 2021-09-23 05:02:46             🧑  作者: Mango

在本文中,我们将通过一个合适的示例来研究如何在 Excel VBA 中使用If Else If语句。

执行 :

在 Microsoft Excel 选项卡中,选择Developer Tab 。最初,开发人员选项卡可能不可用。

开发人员选项卡可以通过两步过程轻松启用:

  • 右键单击 Excel 窗口顶部的任何现有选项卡。
  • 现在从弹出菜单中选择自定义功能区

  • 在 Excel 选项框中,选中开发人员框以启用它,然后单击确定。

  • 现在,开发人员选项卡可见。

现在单击 Developer 选项卡中的Visual Basic选项并创建一个新模块以使用 Select Case 语句编写程序。

Developer  -> Visual Basic -> Tools -> Macros
  • 现在创建一个宏并给出任何合适的名称。

  • 这将打开编辑器窗口,可以在其中编写代码。

IF ELSE IF 语句

语法是:

If condition1/expression1 Then
Code Block 1
Else If condition2/expression2 Then
   Code Block 2
Else 
    Code Block 3
End If

最初,If 条件被执行,如果它为 TRUE,则代码块 1 将执行并且程序终止。现在,如果条件 1 变为 FALSE,则 Else IF 中的条件 2 将起作用,如果为真,则代码块 2 将执行并且程序终止。如果前面两个条件都为假,则 Else 将起作用,并且将执行代码块 3。

流程图 :

示例:假设在一家公司,我们需要找到三个部门的最高工资:HR、Finance 和 IT。

代码 :

Sub Find_Max()
'Declaring the variables
Dim HR_Sal As Integer
Dim Fin_Sal As Integer
Dim IT_Sal As Integer
'Asking the users to enter the salary
HR_Sal = InputBox("Enter HR department salary:")
Fin_Sal = InputBox("Enter Finace department salary:")
IT_Sal = InputBox("Enter IT department salary:")
'Conditions to find the maximum salary of three departments
If HR_Sal > Fin_Sal And HR_Sal > IT_Sal Then
    MsgBox "HR department has maximum salary"
'The previous condition fails then the below statement executes
ElseIf Fin_Sal > IT_Sal Then
    MsgBox "Finance department has maximum salary"
'The previous two conditions fail then the below statement executes
Else
    MsgBox "IT department has maximum salary"
End If
End Sub

在这里,我们首先检查 HR 的工资是否高于其他两个部门的工资。如果为 TRUE,则 HR 部门肯定有最高薪水,并且 IF 中的代码会执行。如果这不是 TRUE,则意味着 HR 部门的工资不是最高的,在 Else If 条件下,我们需要在 IT 和财务之间进行比较,看看哪个是最高的。以这种方式 If Else If 执行。如果前面的条件都不为 TRUE,则将执行 Else 中的代码。

AND是一个逻辑运算符,当且仅当与此运算符关联的两个表达式都为 TRUE 时,它才将结果作为 TRUE 值。

情况1 :

用户的输入是:

输出是:

案例2:

用户的输入是:

输出是:

案例3:

用户的输入是:

输出是: