Declaraciones If múltiples (anidadas) de VBA

Este tutorial le mostrará cómo usar declaraciones If anidadas en VBA

Si las declaraciones le permiten probar una sola condición en VBA para ver si la condición es Verdadera o Falsa, y dependiendo de la respuesta, el código se moverá en la dirección de la declaración verdadera o falsa.

Una sola declaración IF

1234567891011 Prueba secundaria SiDim x como enterox = 10Si x = 10 entonces'si x es 10, la condición es verdaderaMsgBox x mide 10 "Demás'si x no es 10, la condición es falsaMsgbox "x no es 10"Terminara siEnd Sub

Explicación de los IF anidados

Un If anidado le permite poner múltiples condiciones DENTRO de cada una de las declaraciones Verdadero y / o Falso del If original.

1234567891011121314151617181920212223242526 Sub TestNestedIf ()Dim x como enteroDim y como enteroDim z como enterox = 10y = 9z = 8Si x = 10 entonces'si x es 10, la condición es verdadera, así que prueba para ySi y = 8 entoncesMsgBox "y es 9"Demás'si y no es 10, la condición es falsaMsgbox "y no es 9"Terminara siDemás'si x no es 10 entonces la condición es falsa, entonces' probemos para zSi z = 8 entoncesMsgBox "z es 8"Demás'si z no es 8, la condición es falsaMsgbox "z no es 10"Terminara si'Otro Fin Si es necesario para cerrar el original siTerminara siEnd Sub

Sangrar su código cuando lo escribe siempre es una buena práctica, ya que hace que el código sea fácil de leer y seguir cuando tiene que volver a él en algún momento, o cuando otro programador tiene que leerlo.

También podríamos crear una función diseñada por el usuario (UDF) y llamar los valores de algunas celdas desde Excel a la función usando parámetros.

1234567891011121314151617181920 Función GetIf (x como Integer, y como Integer, z como Integer) como StringSi x = 10 entonces'si x es 10, la condición es verdadera, así que prueba para ySi y = 8 entoncesGetIf = "y es 9"Demás'si y no es 10, la condición es falsaGetIf = "y no es 9"Terminara siDemás'si x no es 10 entonces la condición es falsa, entonces' probemos para zSi z = 8 entoncesGetIf = "z es 8"Demás'si z no es 8, la condición es falsaGetIf = "z no es 10"Terminara si'Otro Fin Si es necesario para cerrar el original siTerminara siFunción final

Ejemplo práctico anidado si

Considere la siguiente función:

12345678910111213141516171819202122 Función GetDiscount (dblPrice As Double) As DoubleSi dblPrice> = 1000 Entonces'si el precio es superior a 1000, asigne un descuentoSi dblPrice> = 2000 Entonces'si es mayor que 2000, dé un 10% de descuentoGetDiscount = dblPrice * 0.1Demás'de lo contrario, da un 5% de descuentoGetDiscount = dblPrice * 0.05Terminara si'si el precio no es superior a 1000Demás'si es mayor de 500, otorgue un descuento del 2.5%Si dblPrice> = 500 EntoncesGetDiscount = dblPrice * 0.025Demás'de lo contrario no hay descuentoGetDiscount = 0Terminara si'Otro Fin Si es necesario para cerrar el original siTerminara siFunción final

Usando esta función en una hoja de Excel, podemos probar para ver el precio total de un pedido y aplicar diferentes descuentos dependiendo de ese total.

Programación VBA | ¡Code Generator funciona para usted!

Usando ElseIf

ElseIf nos permite simplificar su código, ya que solo se movió hacia la segunda instrucción if si la primera devuelve un falso.

12345678910111213141516 Función GetDiscount (dblPrice As Double) As Double'use else if para reducir la escritura de códigoSi dblPrice> = 2000 EntoncesGetDiscount = dblPrice * 0.1ElseIf dblPrice> = 1000 EntoncesGetDiscount = dblPrice * 0.075ElseIf dblPrice> = 500 EntoncesGetDiscount = dblPrice * 0.05ElseIf dblPrice> = 200 EntoncesGetDiscount = dblPrice * 0.025ElseIf dblPrice> = 100 EntoncesGetDiscount = dblPrice * 0.01DemásGetDiscount = 0Terminara siFunción final

Uso de una declaración de caso

También podemos usar una declaración de caso para lograr el mismo efecto.

1234567891011121314151617 Función GetDiscount (dblPrice As Double) As DoubleSeleccionar caso dblPrecio'esta declaración de caso tiene 6 niveles de descuento diferentesEl caso es> = 2000GetDiscount = dblPrice * 0.1El caso es> = 1000GetDiscount = dblPrice * 0.075El caso es> = 500GetDiscount = dblPrice * 0.05El caso es> = 200GetDiscount = dblPrice * 0.025El caso es> = 100GetDiscount = dblPrice * 0.01Caso otroGetDiscount = 0Finalizar SeleccionarFunción final

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave