VBA DoEvents

Función Excel VBA DoEvents

Con la ayuda de VBA DoEvents , podemos hacer que el código se ejecute en segundo plano y, al mismo tiempo, nos permite trabajar con Excel y con otras aplicaciones de software. DoEvents no solo nos permite trabajar con otros programas, sino que también podemos interrumpir la ejecución del código.

La función DoEvents pasa el control al sistema operativo de la computadora en la que estamos trabajando.

¿Cómo utilizar la función DoEvents?

Se requiere una gran cantidad de código VBA cuando el requisito es enorme. En esos casos, Excel se cuelga y se detiene durante algún tiempo e incluso a veces deja de responder.

Puede descargar esta plantilla de Excel de VBA DoEvents aquí - Plantilla de Excel de VBA DoEvents

Para ver un ejemplo, mire el siguiente código.

Código:

 Sub DoEvents_Example1 () Dim i Tan largo para i = 1 Al rango de 100000 ("A1"). Valor = i Siguiente i Fin Sub 

El código anterior insertará números de serie del 1 al 100000. La ejecución de la tarea tardará fácilmente más de un minuto. Durante la ejecución, Excel se cuelga durante un tiempo considerable para completar la tarea. Durante este tiempo, Excel muestra el mensaje como "Excel no responde".

Además, no podemos acceder a la hoja de trabajo en la que estamos trabajando. Esto es algo frustrante, entonces, ¿cómo podemos hacer que la hoja de cálculo de Excel esté disponible para trabajar mientras el código se ejecuta detrás de la pantalla?

Esto se puede lograr agregando una función VBA DoEvents .

Código:

 Sub DoEvents_Example1 () Dim i Tan largo para i = 1 al rango de 100000 ("A1"). Valor = i DoEvents Next i End Sub 

En el momento en que agregamos la función DoEvents en el código, podemos acceder a la hoja de cálculo de Excel.

Desde arriba podemos ver que el código se está ejecutando pero podemos acceder a la hoja de trabajo.

Interrumpir la ejecución del código

Cuando el código se ejecuta detrás de la pantalla, podemos agregar filas, columnas y eliminar lo mismo, podemos cambiar el nombre de la hoja y podemos hacer muchas otras cosas también. En el momento en que agregamos DoEvents, el código vba se ejecuta rápidamente y nos permite sentir que la tarea mencionada se está ejecutando por sí misma.

  • Uno de los peligros de la función DoEvents es que cuando cambiamos hojas de trabajo o libros de trabajo, sobrescribe los valores de la hoja activa.
  • Otro peligro es que si ingresamos algún valor en la celda la ejecución del código se detiene y ni siquiera nos notifica.
Nota : A pesar de los peligros anteriores de DoEvents, sigue siendo una función útil. Podemos usar DoEvents como parte del proceso de depuración cuando intentamos corregir errores del código que hemos escrito.