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.
VBA para Excel 2016 es rápido, pero no siempre es lo suficientemente rápido. (Los programas de computadora nunca son lo suficientemente rápidos). Siga leyendo para descubrir algunos ejemplos de programación que puede usar para acelerar sus macros.
Al ejecutar una macro, puede sentarse y observar toda la acción en pantalla que ocurre en la macro. Aunque hacer esto puede ser instructivo, después de que la macro funcione correctamente, a menudo es molesto y puede ralentizar considerablemente el rendimiento de la macro. Afortunadamente, puede desactivar la actualización de la pantalla que ocurre normalmente cuando ejecuta una macro. Para desactivar la actualización de la pantalla, use la siguiente declaración:
Application.ScreenUpdating = Falso
Si desea que el usuario vea lo que está sucediendo en cualquier momento durante la macro, use la siguiente declaración para volver a activar la actualización de la pantalla:
Application.ScreenUpdating = True
Para demostrar la diferencia de velocidad, ejecute esta simple macro, que llena un rango con números:
Sub FillRange () Dim r tan largo, c tan largo Número tenue tan largo Número = 0 Para r = 1 a 50 Para c = 1 a 50 Número = Número + 1 Celdas (r, c) .Seleccionar Celdas (r, c). Valor = Número Siguiente c Siguiente r End Sub
Verá que se selecciona cada celda y se ingresa el valor en las celdas. Ahora inserte la siguiente declaración al comienzo del procedimiento y ejecútela nuevamente:
Application.ScreenUpdating = Falso
El rango se llena mucho más rápido y no ve el resultado hasta que la macro termina de ejecutarse y la actualización de la pantalla se establece (automáticamente) en Verdadero.
Cuando está depurando código, la ejecución del programa a veces termina en algún punto intermedio sin que haya vuelto a activar la actualización de pantalla. Esto a veces hace que la ventana de la aplicación de Excel deje de responder por completo. La forma de salir de este estado congelado es simple: regrese al VBE y ejecute la siguiente declaración en la ventana Inmediato:
Application.ScreenUpdating = True
Si tiene una hoja de trabajo con muchas fórmulas complejas, puede encontrar que puede acelerar las cosas considerablemente configurando el modo de cálculo en manual mientras se ejecuta la macro. Cuando finalice la macro, vuelva a establecer el modo de cálculo en automático.
La siguiente declaración establece el modo de cálculo de Excel en manual:
Application.Calculation = xlCalculationManual
Ejecute la siguiente instrucción para establecer el modo de cálculo en automático:
Application.Calculation = xlCalculationAutomatic
Si su código usa celdas con resultados de fórmula, desactivar el cálculo significa que las celdas no se volverán a calcular a menos que le indique explícitamente a Excel que lo haga.
Como sabes, una macro puede realizar automáticamente una serie de acciones. En muchos casos, puede iniciar una macro y luego pasar el rato en la sala de descanso mientras Excel hace lo suyo. Sin embargo, algunas operaciones de Excel muestran mensajes que requieren una respuesta humana. Estos tipos de mensajes significan que no puede dejar Excel desatendido mientras ejecuta su macro, a menos que conozca el truco secreto.
Puede indicarle a Excel que no muestre este tipo de alertas mientras ejecuta una macro.
El truco secreto para evitar estos mensajes de alerta es insertar la siguiente declaración de VBA en su macro:
Application.DisplayAlerts = False
Excel ejecuta la operación predeterminada para este tipo de mensajes. En el caso de eliminar una hoja, la operación predeterminada es Eliminar. Si no está seguro de cuál es la operación predeterminada, realice una prueba para ver qué sucede.
Cuando finaliza el procedimiento, Excel restablece automáticamente la propiedad DisplayAlerts en True. Si necesita volver a activar las alertas antes de que finalice el procedimiento, utilice esta declaración:
Application.DisplayAlerts = True
Como probablemente ya sepa, las referencias a objetos pueden llegar a ser muy extensas. Por ejemplo, una referencia completa a un objeto Range puede verse así:
Libros de trabajo ("MyBook.xlsx"). Hojas de trabajo ("Hoja1") _ .Rango ("Tasa de interés")
Si su macro utiliza con frecuencia este rango, es posible que desee crear una variable de objeto mediante el comando Establecer. Por ejemplo, la siguiente declaración asigna este objeto Range a una variable de objeto denominada Tasa:
Establecer tarifa = Libros de trabajo ("MyBook.xlsx") _ .Hojas de trabajo ("Hoja1"). Rango ("Tasa de interés")
Después de definir esta variable de objeto, puede utilizar la variable Tasa en lugar de la referencia extensa. Por ejemplo, puede cambiar el valor de la celda denominada Tasa de interés:
Rate.Value = .085
Esto es mucho más fácil de escribir que la siguiente declaración:
Libros de trabajo ("MyBook.xlsx"). Hojas de trabajo ("Hoja1"). _ Rango ("Tasa de interés") = .085
Además de simplificar su codificación, el uso de variables de objeto acelera considerablemente sus macros.
Por lo general, no tiene que preocuparse por el tipo de datos que asigna a una variable. Excel maneja todos los detalles detrás de escena. Por ejemplo, si tiene una variable llamada MyVar, puede asignar un número de cualquier tipo a esa variable. Incluso puede asignarle una cadena de texto más adelante en el procedimiento.
Si desea que sus procedimientos se ejecuten lo más rápido posible, dígale a Excel qué tipo de datos se asignarán a cada una de sus variables. Esto se conoce como declarar el tipo de una variable.
En general, debe usar el tipo de datos que requiera la menor cantidad de bytes pero que aún pueda manejar todos los datos asignados. Cuando VBA trabaja con datos, la velocidad de ejecución depende de la cantidad de bytes que VBA tiene a su disposición. En otras palabras, cuantos menos bytes usen los datos, más rápido VBA podrá acceder y manipular los datos. Una excepción a esto es el tipo de datos Integer. Si la velocidad es crítica, utilice el tipo de datos Long en su lugar.
Si usa una variable de objeto, puede declarar la variable como un tipo de objeto en particular. He aquí un ejemplo:
Tasa de atenuación como rango Establecer tarifa = Libros de trabajo ("MyBook.xlsx") _ .Hojas de trabajo ("Hoja1"). Rango ("Tasa de interés")
¿Necesita establecer una serie de propiedades para un objeto? Su código se ejecuta más rápido si usa la estructura With-End With. Un beneficio adicional es que su código puede ser más fácil de leer.
El siguiente código no usa With-End With:
Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.WrapText = True Selection.Orientation = 0 Selection.ShrinkToFit = False Selection.MergeCells = False
Este es el mismo código, reescrito para usar With-End With:
Con selección .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = Verdadero .Orientación = 0 .ShrinkToFit = Falso .MergeCells = Falso Terminar con
Cuando use With-End With, asegúrese de que cada declaración comience con un punto.
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.