Hogar Redes sociales Cómo usar If-Then en Excel 2016 VBA - Dummies

Cómo usar If-Then en Excel 2016 VBA - Dummies

Tabla de contenido:

Video: Excel VBA IF THEN Statement (with ELSEIF & Looping in cells) 2024

Video: Excel VBA IF THEN Statement (with ELSEIF & Looping in cells) 2024
Anonim

If-Then es la estructura de control más importante de VBA. Probablemente usarás este comando todos los días. Use la estructura If-Then cuando quiera ejecutar una o más declaraciones de forma condicional. La cláusula Else opcional, si está incluida, le permite ejecutar una o más declaraciones si la condición que está probando es no verdadera. Aquí hay un procedimiento simple CheckUser, recodificado para usar la estructura If-Then-Else:

Sub CheckUser2 () UserName = InputBox ("Ingrese su nombre:") If UserName = "Satya Nadella" Then MsgBox ("Bienvenido Satya …") '… [Más código aquí] … Else MsgBox "Lo siento. Solo Satya Nadella puede ejecutar esto. "End If End Sub

Ejemplos If-Then

La siguiente rutina muestra la estructura If-Then sin la cláusula Else opcional:

Sub GreetMe () If Time <0. 5 then MsgBox" Good Morning "End Sub

El procedimiento GreetMe usa la función de tiempo de VBA para obtener la hora del sistema. Si la hora actual es menor que. 5, la rutina muestra un saludo amistoso. Si Time es mayor o igual que. 5, la rutina termina, y no pasa nada.

Para mostrar un saludo diferente si Time es mayor o igual a. 5, puede agregar otra declaración If-Then después de la primera:

Sub GreetMe2 () If Time = 0. 5 Then MsgBox "Good Afternoon" End Sub

Observe que> = (mayor o igual que) se usa para la segunda declaración If-Then. Esto asegura que todo el día esté cubierto. Si se ha utilizado> (mayor que), no aparecerá ningún mensaje si este procedimiento se ejecutó precisamente a las 12:00 del mediodía. Eso es bastante improbable, pero con un programa importante como este, no querrás arriesgarte.

Un ejemplo If-Then-Else

Otro enfoque del problema anterior usa la cláusula Else. Aquí está la misma rutina grabada para usar la estructura If-Then-Else:

Sub GreetMe3 () Si Tiempo <0. 5 entonces MsgBox "Buenos días" Else _ MsgBox "Buenas tardes" End Sub

Observe que la línea el carácter de continuación (guión bajo) se usa en el ejemplo anterior. La instrucción If-Then-Else es en realidad una sola declaración. VBA proporciona una forma ligeramente diferente de codificación de construcciones If-Then-Else que utilizan una instrucción End If. Por lo tanto, el procedimiento GreetMe puede reescribirse como

Sub GreetMe4 () Si Tiempo <0. 5 entonces MsgBox "Buenos días" Else MsgBox "Buenas tardes" Fin Si Fin Sub

De hecho, puede insertar cualquier cantidad de declaraciones debajo del Si parte y cualquier cantidad de declaraciones en la parte Else. Esta sintaxis es más fácil de leer y hace que las declaraciones sean más cortas.

¿Qué sucede si necesita expandir la rutina GreetMe para manejar tres condiciones: mañana, tarde y noche? Tiene dos opciones: usar tres instrucciones If-Then o usar una estructura anidada If-Then-Else. Anidar significa colocar una estructura If-Then-Else dentro de otra estructura If-Then-Else. El primer enfoque, usando tres declaraciones If-Then, es más simple:

Sub GreetMe5 () Dim Msg As String If Time = 0. 5 Y Time = 0. 75 Then Msg = "Evening" MsgBox "Good" & Msg End Sub

Se agregó un nuevo giro con el uso de una variable. La variable Msg obtiene un valor de texto diferente, según la hora del día. La instrucción MsgBox muestra el saludo: Buenos días, Buenas tardes o Buenas tardes.

La siguiente rutina realiza la misma acción pero usa una estructura If If-Then-End If:

Sub GreetMe6 () Dim Msg As String If Time = 0. 5 Y Time = 0. 75 Then Msg = "Evening" End If MsgBox "Bueno" y Msg End Sub

Usando ElseIf

En los ejemplos anteriores, se ejecuta cada instrucción en la rutina. Una estructura un poco más eficiente saldría de la rutina tan pronto como se encuentre una condición verdadera. Por la mañana, por ejemplo, el procedimiento debe mostrar el mensaje Buenos días y luego salir, sin evaluar las demás condiciones superfluas.

Con una pequeña rutina como esta, no tiene que preocuparse por la velocidad de ejecución. Pero para aplicaciones más grandes en las que la velocidad es crítica, debe conocer otra sintaxis para la estructura If-Then.

Aquí puede reescribir la rutina GreetMe utilizando esta sintaxis:

Sub GreetMe7 () Dim Msg As String If Time = 0. 5 Y Time <0. 75 then Msg = "Afternoon" Else Msg = "Evening "End If MsgBox" Good "& Msg End Sub

Cuando una condición es verdadera, VBA ejecuta las instrucciones condicionales, y la estructura If finaliza. En otras palabras, este procedimiento es un poco más eficiente que los ejemplos anteriores. La desventaja es que el código es más difícil de entender.

Otro ejemplo If-Then

Aquí hay otro ejemplo que usa la forma simple de la estructura If-Then. Este procedimiento solicita al usuario una cantidad y luego muestra el descuento apropiado, basado en la cantidad que ingresa el usuario:

Sub ShowDiscount () Dim Cantidad Tan larga Dim Descuento como Double Quantity = InputBox ("Enter Quantity:") If Quantity > 0 Entonces Descuento = 0. 1 Si Cantidad> = 25 Entonces Descuento = 0. 15 Si Cantidad> = 50 Entonces Descuento = 0. 2 Si Cantidad> = 75 Entonces Descuento = 0. 25 MsgBox "Descuento:" & Descuento End Sub

Observe que se ejecuta cada instrucción If-Then en esta rutina y que el valor de Descuento puede cambiar a medida que se ejecutan las instrucciones. Sin embargo, la rutina muestra finalmente el valor correcto para Descuento porque las declaraciones If-Then están en orden de valores de Descuento ascendentes.

El siguiente procedimiento realiza las mismas tareas utilizando la sintaxis alternativa de ElseIf. En este caso, la rutina finaliza inmediatamente después de ejecutar las declaraciones para una condición verdadera:

Sub ShowDiscount2 () Dim Cantidad como Long Dim Descuento como Double Quantity = InputBox ("Enter Quantity:") If Quantity> 0 And Quantity <25 luego Descuento = 0.1 ElseIf Quantity> = 25 And Quantity <50 then Discount = 0. 15 ElseIf Quantity> = 50 And Quantity <75 then Discount = 0. 2 ElseIf Quantity> = 75 Then Discount = 0. 25 End If MsgBox "Discount:" & Descuento End Sub

Estas estructuras If-Then múltiples son bastante engorrosas. Es posible que desee utilizar la estructura If-Then solo para decisiones binarias simples.

Cómo usar If-Then en Excel 2016 VBA - Dummies

Selección del editor

Recorrer el espacio de trabajo de InDesign CS5: variables ficticias

Recorrer el espacio de trabajo de InDesign CS5: variables ficticias

Adobe InDesign Creative Suite 5 o interfaz de usuario es eficiente e intuitiva diseñado. Al igual que las otras aplicaciones CS5, InDesign tiene un diseño estandarizado. InDesign CS5workspace que se muestra aquí es como se ve en un Macintosh. El espacio de trabajo de Windows es ligeramente diferente de la versión de Macintosh. Notará una diferencia en el menú principal ...

Recorrer el espacio de trabajo de InDesign: variables ficticias

Recorrer el espacio de trabajo de InDesign: variables ficticias

Al igual que otras aplicaciones en Creative Cloud, InDesign tiene un diseño estandarizado. Con paneles que se pueden acoplar y un panel de herramientas de una sola fila, puede mantener mucho más espacio abierto en su área de trabajo. El espacio de trabajo de InDesign, o la interfaz de usuario, incluye una gran cantidad de herramientas y paneles, pero la mayoría de los usuarios usa ...

Thread y Link InDesign CS5 Text Frames - dummies

Thread y Link InDesign CS5 Text Frames - dummies

Link (thread) un marco de texto a otros fotogramas en un Publicación InDesign Creative Suite 5 para que el texto pueda fluir entre ellos. El subprocesamiento es útil para la mayoría de los diseños porque no siempre se puede incluir todo el texto en un solo cuadro. Fluir: Coloca el texto comenzando en un cuadro y continuando a cuadros adicionales. Enhebrado: enlace de texto ...

Selección del editor

Código de uso común en desarrollo de aplicaciones Android: dummies

Código de uso común en desarrollo de aplicaciones Android: dummies

"Mi aplicación necesita un receptor de difusión. ¿Alguien puede recordarme cómo puedo codificar un receptor de difusión? Y mientras lo hace, ¿cómo devuelve una actividad el resultado? Oh, diablos. ¿Dónde puedo encontrar todo eso rápidamente? "Tener ejemplos del tipo de código utilizado en el desarrollo de aplicaciones de Android listas para usar puede ser ...

Cómo agregar métodos a las clases existentes en el desarrollo de aplicaciones iOS - Dummies

Cómo agregar métodos a las clases existentes en el desarrollo de aplicaciones iOS - Dummies

Curiosamente , Objective-C te permite agregar tus propios métodos a clases existentes en una aplicación iOS, incluso aquellas clases que no has escrito. Agregar métodos adicionales a una clase es útil en una situación donde el nuevo comportamiento se usa solo en ciertas situaciones. Como ejemplo, puede encontrar que una aplicación en particular ...

Cómo agregar métodos a clases existentes en el desarrollo de aplicaciones iOS - Dummies

Cómo agregar métodos a clases existentes en el desarrollo de aplicaciones iOS - Dummies

En El desarrollo de aplicaciones iOS, Objective-C le permite agregar sus propios métodos a las clases existentes, incluso aquellas clases que no ha escrito. Agregar métodos adicionales a una clase es útil en una situación donde el nuevo comportamiento se usa solo en ciertas situaciones. Como ejemplo, puede encontrar una aplicación en particular (por ejemplo, ...

Selección del editor

ÁNgulos coincidentes con los temas de alimentos en la fotografía de alimentos: maniquíes

ÁNgulos coincidentes con los temas de alimentos en la fotografía de alimentos: maniquíes

Utilizando ángulos al capturar sujetos de alimentos en la fotografía de alimentos proporcione una apariencia diferente para sus imágenes. La clave es jugar con los diferentes ángulos y luego enfocarse en la comida. Algunos ángulos se ven mucho más apetitosos que otros, pero esto varía de un alimento a otro.

Maximiza la ampliación con sujetos pequeños: dummies

Maximiza la ampliación con sujetos pequeños: dummies

El universo parece proporcionar capas de detalles, desde la galaxia hasta el solar sistema, a las montañas, a los árboles, a los animales, a los insectos, y a las bacterias y células, a los átomos y más allá. La fotografía puede capturar la información provista en esas varias capas. Qué tan abajo en la escala ...

Metro con su cámara en fotografía HDR - Dummies

Metro con su cámara en fotografía HDR - Dummies

Utilizando una estrategia de horquillado preconcebida en alto rango dinámico (HDR) la fotografía funciona bien, pero la desventaja es no saber si realmente estás capturando el rango dinámico completo de la escena con los corchetes (si prestas atención a un histograma en vivo, estás más cerca de saber). Un enfoque más estudioso depende de la medición de altas y bajas ...