VBA IIF - ¿Cómo usar la función VBA IIF en Excel? (con ejemplos)

Tabla de contenido

Excel VBA IIF

Si es un 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

Eche un vistazo a 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, entonces, ¿cuál debería ser la parte VERDADERA?
  • Parte falsa: si la prueba lógica es FALSA, entonces 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" regular y este "IIF" es que podemos reducir el código a una sola línea con I donde con la condición IF, y 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.

Ejemplo n. ° 1 - VBA IIF

Ok, veremos un ejemplo simple de la 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 As String Dim Number1 Como Long Dim Number2 Como Long End 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

You must be wondering what the difference between IF & IIF is. Yes, there is a difference in coding. For example, look at the IF condition code.

Code:

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

Using IF first, we have applied a logical test.

If Number1> Number2 Then

Then if the logical test is true, we have applied the result.

MsgBox "Number 1 is Greater than Number 2"

Then if the logical test is false, we have applied the different results.

MsgBox "Number 1 is Less than Number 2"

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

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

Como usamos IF anidado para probar múltiples condiciones de manera similar, también podemos usar múltiples IIF. Eche un vistazo al siguiente código.

Código:

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, "Tercero", "Fallo")))) MsgBox FinalResult End Sub

La condición IIF anterior prueba cinco pruebas lógicas y devuelve el resultado en consecuencia.

Articulos interesantes...