VBA – Desactivar la actualización de la pantalla
In this Article
Por muy bonito que parezca ver a tu macro VBA manipular la pantalla, puedes ayudar a que tu macro se ejecute más rápido si desactivas (deshabilitas) ScreenUpdating.
Desactivar ScreenUpdating
1. Para deshabilitar ScreenUpdating, al principio de su código ponga esta línea:
Application.ScreenUpdating = False
Habilitar ScreenUpdating
2. Para volver a habilitar ScreenUpdating, al final de su código ponga esta línea
Application.ScreenUpdating = True
Ejemplo de VBA ScreenUpdating
Su procedimiento se verá así:
Sub Ejemplo_ScreenUpdating()
Application.ScreenUpdating = False
'Hacer algo
Rango("a1").Copiar Rango("b1")
Range("a2").Copiar Range("b2")
Range("a3").Copiar Range("b3")
Application.ScreenUpdating = True
End Sub
Refrescar ScreenUpdating
Desactivar ScreenUpdating hará que su código VBA se ejecute MUCHO más rápido, pero también hará que su trabajo parezca más profesional. Los usuarios finales normalmente no quieren ver las acciones detrás de escena de sus procedimientos (especialmente cuando el procedimiento se ejecuta lentamente). Además, es posible que usted no quiera que los usuarios finales vean la funcionalidad entre bastidores (por ejemplo, las hojas de trabajo ocultas). Recomiendo desactivar (y volver a activar) ScreenUpdating en prácticamente todos sus procedimientos.
Sin embargo, hay algunas ocasiones en las que se desea que la pantalla se actualice. Para refrescar la pantalla, tendrá que volver a activar temporalmente ScreenUpdating (no hay un comando de «refrescar» la pantalla):
Application.ScreenUpdating = True
'Hacer algo
Application.ScreenUpdating = False
Ajustes VBA – Acelerar el código
Hay varias otras configuraciones con las que puede jugar para mejorar la velocidad de su código.
Desactivar los cálculos automáticos puede suponer una GRAN diferencia en la velocidad:
Application.Calculation = xlManual
Desactivar la Barra de Estado también hará una pequeña diferencia:
Application.DisplayStatusBar = False
Si su libro de trabajo contiene eventos, normalmente debería desactivar los eventos al principio de su procedimiento:
Application.EnableEvents = False
Por último, su código VBA puede ralentizarse cuando Excel intenta recalcular los saltos de página (Nota: no todos los procedimientos se verán afectados). Para desactivar la visualización de los saltos de página utilice esta línea de código:
ActiveSheet.DisplayPageBreaks = False
La codificación VBA es fácil
Deje de buscar código VBA en línea. Aprenda más sobre AutoMacro – Un generador de código VBA que permite a los principiantes codificar procedimientos desde cero con un mínimo conocimiento de codificación y con muchas características que ahorran tiempo a todos los usuarios
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!