VBA IIF

Excel VBA IIF

Si usted es el usuario habitual de macros VBA, entonces debe haber encontrado la función llamada "IIF" o es posible que haya visto esta función en Internet. A primera vista, debe haber pensado que es una condición IF como nuestra declaración IF regular en Excel. Pero esta no es la misma declaración IF que usamos para evaluar pruebas lógicas y obtener resultados basados ​​en los criterios que damos. En este artículo, lo guiaremos a través de la condición "VBA IIF" en VBA.

¿Qué hace la condición IIF en VBA?

Esto es muy similar a nuestra condición IF pero de naturaleza ligeramente diferente. La condición “VBA IIF” prueba la expresión o prueba lógica proporcionada y devuelve VERDADERO o FALSO como resultado.

Sintaxis de VBA IIF

Observe la sintaxis de la función IIF.

  • Expresión: esta no es más que la prueba lógica que nos gustaría realizar.
  • Parte Ture: Si la prueba lógica es VERDADERA, ¿cuál debería ser el resultado de la parte VERDADERA?
  • Parte falsa: si la prueba lógica es FALSA, ¿cuál debería ser el resultado de la parte FALSA?

Podemos ingresar nuestros propios resultados con partes VERDADERAS Y FALSAS. Aunque los argumentos se parecen a los de la condición IF, esto será ligeramente diferente. Lo veremos en los ejemplos de la función Excel VBA IIF.

Una de las diferencias clave entre el "IF" normal y este "IIF" es que podemos reducir el código a una sola línea con IIF donde con la condición IF se necesitan un mínimo de 5 líneas para llegar al mismo resultado.

Ejemplo de función VBA IIF

A continuación se muestran los ejemplos de la función VBA IIF en Excel.

Puede descargar esta plantilla de Excel de VBA IIF aquí - Plantilla de Excel de VBA IIF

Ejemplo # 1 - VBA IIF

Ok, veremos un ejemplo simple de función IIF. Ahora probaremos si un número es mayor o menor que otro número. Siga los pasos a continuación para escribir el código VBA.

Paso 1: Inicie la macro.

Paso 2: Defina la variable como Cadena en VBA.

Código:

 Sub IIF_Example () Dim FinalResult As String End Sub 

Paso 3: Defina dos variables más como Long en VBA.

Código:

 Sub IIF_Example () Dim FinalResult Como cadena Dim Número1 Como largo Dim Número2 Como sub 

Paso 4: Ahora para la variable “Número1” asigne el valor de 105 y para la variable “Número2” asigne el valor de 100.

Código:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub 

Paso 5: Ahora para la primera variable definida "FinalResult" asignaremos el resultado de la función IIF. Así que abre el IIF para la variable.

Paso 6: proporcione la expresión como Número1> Número2.

Paso 7: Ahora, si la expresión es VERDADERA, cuál debería ser el resultado. Asignaré el resultado como "El número 1 es mayor que el número 2".

Paso 8: Ahora, si la expresión es FALSA, cuál debería ser el resultado. Asignaré el resultado como "El número 1 es menor que el número 2".

Ahora el valor de la variable será uno de los siguientes.

Si es verdadero: "El número 1 es mayor que el número 2"

Si es falso: "El número 1 es menor que el número 2"

Paso 9: mostremos el resultado en un cuadro de mensaje en VBA.

Código:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 FinalResult = IIf (Number1> Number2, "Number 1 is Greater than Number 2", "Number 1 is Less than Number 2") MsgBox FinalResult End Sub 

Ahora ejecutemos el código y veamos el resultado.

Dado que el valor del Número 1 es 105, que es mayor que el valor del Número 2 de 100, obtuvimos el resultado como “El número 1 es mayor que el número 2”. Dado que la expresión es VERDADERA, la condición IIF devolvió este resultado.

Ejemplo # 2 - IF vs IIF

Debe preguntarse cuál es la diferencia entre IF y IIF. Sí, hay una diferencia en la codificación. Por ejemplo, mire el código de condición IF.

Código:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Then MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Number 1 is Less than Number 2" End If End Sub 

Usando IF primero hemos aplicado una prueba lógica.

 Si Número1> Número2, entonces 

Entonces, si la prueba lógica es verdadera, hemos aplicado el resultado.

MsgBox "El número 1 es mayor que el número 2"

Entonces, si la prueba lógica es falsa, hemos aplicado los diferentes resultados.

MsgBox "El número 1 es menor que el número 2"

Ambas funciones devuelven el mismo resultado, pero con IIF podemos codificar solo en una línea, donde la instrucción IF requiere varias líneas.

Ejemplo n. ° 3: condición de IIF anidado de VBA

Like how we use nested IF to test multiple conditions similarly we can use multiple IIF as well. Take a look at the below code.

Code:

 Sub IIF_Example2() Dim FinalResult As String Dim Marks As Long Marks = 98 FinalResult = IIf(Marks > 90, "Dist", IIf(Marks > 80, "First", IIf(Marks > 70, "Second", IIf(Marks > 60, "Third", "Fail")))) MsgBox FinalResult End Sub 

The above IIF condition tests five logical tests and returns the result accordingly.