Non credo che ci sia un modo per farlo come si vorrebbe che funzionasse. VBA è un linguaggio di scripting, quindi quando avvii la tua procedura, funzionerà finché non sarà terminato. Se avessi un altro pulsante da qualche parte che anche FATTO ti lascerebbe cliccarlo mentre la procedura originale era in esecuzione, non sono sicuro di come faresti riferimento a quella procedura e di fermarla.
Si potrebbe fare qualcosa come chiedere all'utente se vuole contine, ma che lo farebbe funzionare ancora più a lungo.
Inoltre, è possibile che la procedura controlli una condizione esterna a Excel e continui a essere eseguita finché è vera. Qualcosa di semplice potrebbe essere controllare se un determinato file di testo si trova in una cartella. Se si desidera interrompere la procedura, aprire la cartella e spostare il file. Nella prossima iterazione del ciclo, non vedrebbe il file e smetterà di funzionare. Cludgy, inefficiente e non elegante, ma funzionerebbe. Puoi anche fare in modo che controlli una cella, una casella di controllo, un pulsante radio, praticamente qualsiasi controllo in un altro foglio Excel in esecuzione in un'altra istanza di Excel. Di nuovo cludgy.
CTRL + Break opere. Accettalo e vai avanti. Un semplice trucco a tale proposito è che se proteggi il tuo codice con una password e premi CTRL + Break, l'opzione di debug non è disponibile e otterranno solo Continue o End.
Se questo è un codice che viene eseguito frequentemente, hai considerato lo script qualcosa che lo esegue durante i periodi in cui un essere umano non sta utilizzando il computer? Ho usato per eseguire lo screen telnet di macro telnet che richiederebbero ore per passare attraverso i nostri widget, ma li ho sempre eseguiti su un computer separato o quando non ero lì (notti/fine settimana).
Ottima risposta! Non sapevo che potevi fare questo! – mandroid
Brillante. Grazie, Dick. – Lunatik
+1 bella risposta. Goditi il distintivo :) – brettdj