VBA IIF |如何在Excel中使用VBA IIF函数? (带有示例)

Excel VBA IIF

如果您是VBA宏的常规用户,那么您一定遇到过称为“ IIF”的功能,否则您可能已经在Internet上看到了该功能。乍一看,您可能已经认为这是IF条件,就像我们在Excel中的常规IF语句一样。但这不是我们用来评估逻辑测试并根据我们给出的标准得出结果的IF语句。在本文中,我们将带您了解VBA中的“ VBA IIF”条件。

IIF条件在VBA中起什么作用?

这与我们的中频条件非常相似,但本质上略有不同。 “ VBA IIF”条件测试提供的表达式或逻辑测试,并返回TRUE或FALSE作为结果。

VBA IIF语法

看一下IIF函数的语法。

  • 表达: 这不过是我们要进行的逻辑测试。
  • 真实部分: 如果逻辑测试为TRUE,那么TRUE部分的结果应该是什么。
  • 错误部分: 如果逻辑测试为FALSE,那么FALSE部分的结果应该是什么。

我们可以使用TRUE和FALSE部分输入我们自己的结果。尽管参数看起来与IF条件的参数相似,但这将略有不同。我们将在Excel VBA IIF函数的示例中看到这一点。

常规“ IF”和此“ IIF”之间的主要区别之一是,我们可以使用IIF将代码缩减为一行,而在IF条件下,至少需要5行才能达到相同的结果。

VBA IIF功能示例

以下是excel中的VBA IIF函数示例。

您可以在此处下载此VBA IIF Excel模板– VBA IIF Excel模板

Example#1 – VBA IIF

好的,我们将看到一个简单的IIF函数示例。现在我们将测试一个数字是否大于或小于另一个数字。请按照以下步骤编写VBA代码。

步骤1: 启动宏。

第2步: 在VBA中将变量定义为String。

代码:

 Sub IIF_Example()Dim FinalResult作为字符串End Sub 

第三步: 在VBA中将另外两个变量定义为Long。

代码:

 Sub IIF_Example()Dim FinalResult作为字符串Dim Number1作为Long Dim Number2作为Long End Sub 

第4步: 现在,为变量“ Number1”分配值105,并为变量“ Number2”分配值100。

代码:

 Sub IIF_Example()Dim FinalResult作为字符串Dim Number1作为Long Dim Number2作为Long Number1 = 105 Number2 = 100 End Sub 

步骤5: 现在,对于第一个定义的变量“ FinalResult”,我们将分配IIF函数的结果。因此,打开该变量的IIF。

步骤6: 提供表达式为Number1> Number2。

步骤7: 现在,如果表达式为TRUE,应该是什么结果。我将结果分配为“数字1大于数字2”。

步骤8: 现在,如果表达式为FALSE,应该是什么结果。我将结果分配为“数字1小于数字2”。

现在,变量值将是以下之一。

如果属实: “数字1大于数字2”

如果为假: “数字1小于数字2”

步骤9: 让我们在VBA的消息框中显示结果。

代码:

 Sub IIF_Example()Dim FinalResult作为字符串Dim Number1作为Long Dim Number2作为Long Number1 = 105 Number2 = 100 FinalResult = IIf(Number1> Number2,“数字1大于数字2”,“数字1小于数字2”) MsgBox FinalResult结束子 

现在,运行代码并查看结果。

由于数字1的值是105,大于数字2的值100,因此得到的结果是“数字1大于数字2”。由于Expression为TRUE,因此IIF条件返回此结果。

例子2 – IF vs IIF

您一定想知道IF和IIF之间的区别是什么。是的,编码有所不同。例如,查看IF条件代码。

代码:

 Sub IIF_Example()Dim FinalResult作为字符串Dim Number1作为Long Dim Number2作为Long Number1 = 105 Number2 = 100如果Number1> Number2那么MsgBox“ Number 1大于Number 2”其他MsgBox“ Number 1小于Number 2”结束子 

首先使用IF,我们已经应用了逻辑测试。

 如果Number1> Number2然后 

然后,如果逻辑检验为真,则我们应用了结果。

MsgBox“数字1大于数字2”

然后,如果逻辑检验为假,我们将应用不同的结果。

MsgBox“数字1小于数字2”

这两个函数都返回相同的结果,但是使用IIF,我们只能在一行中进行编码,而IF语句则需要多行。

示例#3 – VBA嵌套的IIF条件

就像我们如何使用嵌套IF来测试多个条件一样,我们也可以使用多个IIF。看一下下面的代码。

代码:

 Sub IIF_Example2()将FinalResult作为字符串Dim标记作为长标记= 98 FinalResult = IIf(标记> 90,“ Dist”,IIf(标记> 80,“ First”,IIf(标记> 70,“ Second”,IIf(标记) > 60,“ Third”,“ Fail”)))))MsgBox FinalResult End Sub 

上面的IIF条件测试了五个逻辑测试,并相应地返回结果。