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.
Por ejemplo, mire el siguiente código.
Código:
Sub DoEvents_Example1 () Dim i Tan largo para i = 1 al rango 100000 ("A1"). Valor = i Siguiente i Fin

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

De lo anterior, 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, hace que el código VBA se ejecute rápido y nos permite sentir que la tarea mencionada se está ejecutando por sí misma.
- Uno de los peligros de la función DoEvents es cuando cambiamos hojas de trabajo o libros de trabajo, y 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.