Consejos de velocidad de Excel 2016 VBA

Consejos de velocidad de Excel 2016 VBA

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.

Desactivar la actualización de la pantalla

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

Desactivar el cálculo automático

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.

Eliminando esos molestos mensajes de alerta

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.

Consejos de velocidad de Excel 2016 VBA

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

Simplificando referencias a objetos

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.

Declarar tipos de variables

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")

Usando la estructura With-End With

¿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.


Hoja inteligente 9.1.1

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.

Compartirpunto

Compartirpunto

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.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

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.

Outlook 2021

Outlook 2021

Microsoft Outlook es una aplicación empresarial y de productividad desarrollada por Microsoft Corporation.

Haga clic arriba

Haga clic arriba

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.

Visor de PDF-XChange 2.5.322.10

Visor de PDF-XChange 2.5.322.10

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

Apache OpenOffice

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.

Descargar iTaxviewer 1.8.7

Descargar iTaxviewer 1.8.7

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.

Lector de PDF Nitro

Lector de PDF Nitro

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.

Lector Foxit 12

Lector Foxit 12

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.