No creo que haya una manera de hacerlo como si quisiera que funcionara. VBA es un lenguaje de scripting así que cuando comiences tu procedimiento, se ejecutará hasta que esté listo. Si tuviera otro botón en alguna parte que incluso le permitiera hacer clic mientras se ejecutaba el procedimiento original, no estoy seguro de cómo haría referencia a ese procedimiento y lo detendría.
Puede hacer algo como preguntar al usuario si quiere continuar, pero eso lo haría funcionar aún más.
También podría hacer que su procedimiento verifique una condición fuera de Excel y siga funcionando mientras sea cierto. Algo fácil podría ser comprobar si un determinado archivo de texto está en una carpeta. Si desea que el procedimiento se detenga, abra la carpeta y mueva el archivo. En la próxima iteración de su ciclo, no vería el archivo y dejaría de ejecutarse. Cludgy, ineficiente y no elegante, pero funcionaría. También podría hacer que marque una celda, una casilla de verificación, un botón de radio, básicamente cualquier control en otra hoja de Excel que se ejecute en otra instancia de Excel. De nuevo, acribillado.
CTRL + Break funciona. Acéptalo y sigue adelante. Un buen truco acerca de eso, sin embargo, es que si protege con contraseña su código y presionan CTRL + Break, la opción de depuración no estará disponible y solo recibirán Continuar o Terminar.
Si se trata de un código que se ejecuta con frecuencia, ¿ha considerado escribir algo que lo ejecute en momentos en que un humano no está usando la computadora? Solía ejecutar macros de raspado de pantalla telnet que llevaban horas revisar nuestros widgets, pero siempre los hacía funcionar en una computadora separada o cuando no estaba allí (noches/fines de semana).
¡Excelente respuesta! ¡No sabía que podrías hacer esto! – mandroid
Brillante. Gracias Dick. – Lunatik
+1 buena respuesta. Disfruta la insignia :) – brettdj