Hoja inteligente 9.1.1
Smartsheet es una plataforma de trabajo dinámica que le permite gestionar proyectos, crear flujos de trabajo y colaborar con su equipo.
If-Then es la estructura de control más importante de VBA. Probablemente usará este comando a diario. Utilice la estructura If-Then cuando desee ejecutar una o más declaraciones de forma condicional. La cláusula Else opcional, si se incluye, le permite ejecutar una o más declaraciones si la condición que está probando no es verdadera. Aquí hay un procedimiento CheckUser simple, recodificado para usar la estructura If-Then-Else:
Sub CheckUser2 () UserName = InputBox ("Ingrese su nombre:") Si UserName = "Satya Nadella", entonces MsgBox ("Bienvenido Satya ...") '... [Más código aquí] ... Demás MsgBox “Lo siento. Solo Satya Nadella puede ejecutar esto ". Terminara si End Sub
La siguiente rutina demuestra la estructura If-Then sin la cláusula Else opcional:
Sub GreetMe () Si el tiempo <0.5, entonces MsgBox "Buenos días" End Sub
El procedimiento GreetMe usa la función Time de VBA para obtener la hora del sistema. Si la hora actual es inferior a 0,5, la rutina muestra un saludo amistoso. Si el tiempo es mayor o igual a 0,5, la rutina finaliza y no ocurre nada.
Para mostrar un saludo diferente si el tiempo es mayor o igual a .5, puede agregar otra instrucción If-Then después de la primera:
Sub GreetMe2 () Si el tiempo <0.5, entonces MsgBox "Buenos días" Si Time> = 0.5, entonces MsgBox "Buenas tardes" End Sub
Observe que> = (mayor o igual que) se usa para la segunda instrucción If-Then. Esto asegura que todo el día esté cubierto. Si se hubiera utilizado> (mayor que), no aparecería ningún mensaje si este procedimiento se ejecutara precisamente a las 12:00 del mediodía. Eso es bastante improbable, pero con un programa importante como este, no querrá correr riesgos.
Otro enfoque del problema anterior utiliza la cláusula Else. Aquí está la misma rutina recodificada para usar la estructura If-Then-Else:
Sub GreetMe3 () Si el tiempo <0.5, entonces MsgBox "Buenos días" Else _ MsgBox "Buenas tardes" End Sub
Observe que el carácter de continuación de línea (guión bajo) se usa en el ejemplo anterior. La declaración If-Then-Else es en realidad una declaración única. VBA proporciona una forma ligeramente diferente de codificar construcciones If-Then-Else que usan una instrucción End If. Por lo tanto, el procedimiento de GreetMe se puede reescribir como
Sub GreetMe4 () Si el tiempo <0.5 entonces MsgBox "Buenos días" Demás MsgBox "Buenas tardes" Terminara si End Sub
De hecho, puede insertar cualquier número de declaraciones en la parte If y cualquier número 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 declaraciones If-Then o usar una estructura If-Then-Else anidada . Anidar significa colocar una estructura If-Then-Else dentro de otra estructura If-Then-Else. El primer enfoque, que utiliza tres declaraciones If-Then, es más simple:
Sub GreetMe5 () Dim Msg como cadena Si el tiempo <0,5, entonces Msg = "Mañana" Si la hora> = 0,5 y la hora <0,75, entonces Msj = "Tarde" Si Hora> = 0,75, entonces Msj = "Tarde" MsgBox "Bueno" y 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 declaración MsgBox muestra el saludo: Buenos días, Buenas tardes o Buenas noches.
La siguiente rutina realiza la misma acción pero usa una estructura If-Then-End If:
Sub GreetMe6 () Dim Msg como cadena Si el tiempo <0.5 entonces Msg = "Mañana" Terminara si Si el tiempo> = 0,5 y el tiempo <0,75, entonces Msg = "Tarde" Terminara si Si el tiempo> = 0,75 entonces Msg = "Tarde" Terminara si MsgBox "Bueno" y Msg End Sub
En los ejemplos anteriores, se ejecuta cada declaración de la rutina. Una estructura un poco más eficiente saldría de la rutina tan pronto como se determinara que una condición es verdadera. Por la mañana, por ejemplo, el procedimiento debe mostrar el mensaje Buenos días y luego salir, sin evaluar las otras 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.
Así es como puede reescribir la rutina GreetMe usando esta sintaxis:
Sub GreetMe7 () Dim Msg como cadena Si el tiempo <0.5 entonces Msg = "Mañana" ElseIf Time> = 0.5 And Time <0.75 Entonces Msg = "Tarde" Demás Msg = "Tarde" Terminara si MsgBox "Bueno" y Msg End Sub
Cuando una condición es verdadera, VBA ejecuta las declaraciones condicionales y la estructura If finaliza. En otras palabras, este procedimiento es un poco más eficiente que los ejemplos anteriores. La compensación es que el código es más difícil de entender.
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 correspondiente, según la cantidad que ingresa el usuario:
Sub ShowDiscount () Dim Cantidad tan larga Descuento tenue como doble Cantidad = InputBox ("Ingresar cantidad:") Si Cantidad> 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 cada instrucción If-Then de esta rutina se ejecuta y el valor de Discount puede cambiar a medida que se ejecutan las instrucciones. Sin embargo, la rutina finalmente muestra el valor correcto de Descuento porque las declaraciones Si-Entonces están en orden de valores de Descuento ascendentes.
El siguiente procedimiento realiza las mismas tareas utilizando la sintaxis alternativa ElseIf. En este caso, la rutina finaliza inmediatamente después de ejecutar las declaraciones para una condición verdadera:
Sub ShowDiscount2 () Dim Cantidad tan larga Descuento tenue como doble Cantidad = InputBox ("Ingresar cantidad:") Si Cantidad> 0 y Cantidad <25, entonces Descuento = 0.1 De lo contrario, si la cantidad> = 25 y la cantidad <50, entonces Descuento = 0,15 De lo contrario, si la cantidad> = 50 y la cantidad <75, entonces Descuento = 0,2 De lo contrario, si la cantidad> = 75 entonces Descuento = 0,25 Terminara si MsgBox "Descuento:" & Descuento End Sub
Estas múltiples estructuras If-Then son bastante engorrosas. Es posible que desee utilizar la estructura If-Then solo para decisiones binarias simples.
Smartsheet es una plataforma de trabajo dinámica que le permite gestionar proyectos, crear flujos de trabajo y colaborar con su equipo.
SharePoint es un sistema de colaboración basado en web que utiliza una variedad de aplicaciones de flujo de trabajo, bases de datos de "listas" y otros componentes web, así como funciones de seguridad para dar control a los grupos empresariales que trabajan juntos.
Van Nien Calendar es una aplicación de visualización de calendario en su teléfono, que le ayuda a ver rápidamente la fecha lunisolar en su teléfono, organizando así su importante trabajo.
Microsoft Outlook es una aplicación empresarial y de productividad desarrollada por Microsoft Corporation.
ClickUp es una de las plataformas de productividad mejor calificadas para cualquier empresa. Grandes empresas como Google, Booking.com, San Diego Padres y Uber utilizan ClickUp para aumentar la productividad en el lugar de trabajo.
PDF se ha convertido en un formato de uso común para leer, crear y enviar documentos de texto. A su vez, se ha producido un aumento en el número de programas utilizados para este tipo de documentación. PDF-XChange Viewer se encuentra entre un número creciente de visores de PDF.
Apache OpenOffice ofrece un conjunto completo de aplicaciones de Office que rivalizan con Microsoft 365, especialmente en Excel, PowerPoint y Word. Le permite gestionar sus proyectos de forma más eficaz y admite varios formatos de archivo.
El software iTaxViewer es el software de lectura de archivos XML más popular en la actualidad. Este software es una aplicación de lectura de declaraciones electrónicas de impuestos en formato XML de la Dirección General de Tributación.
Nitro PDF Reader es un práctico editor de PDF que cubre todas las tareas básicas que la mayoría de las personas realizan todos los días con documentos PDF.
Foxit Reader es principalmente un lector de PDF y también le permite crear archivos PDF, firmarlos, editarlos y agregar anotaciones. Funciona en sistemas operativos, existen complementos para varios programas del paquete Microsoft Office.