La macro viene eseguita lentamente sebbene con F8 scorra rapidamente

Federico ci ha scritto di un problema che stava avendo con una macro. Quando esegue la macro nell’editor VB usando F8 (scorrendo la macro in fase di test), essa si completa in pochi minuti. Quando esegue la macro in effettivo, invece, sembra che ci voglia un’eternità per l’esecuzione, spesso impiegando 20 minuti o più. Anche se la cartella di lavoro di Federico è grande (46 Mb), la differenza di tempo tra i due metodi di esecuzione è fastidiosa.

Problemi come questo possono essere sconcertanti e spesso richiedono analisi pesanti per capirli. Un buon punto di partenza è aggiungere un po’ di “codice timer” nella macro. Aggiungi una piccola routine che salva un valore temporale e un’altra routine che confronta il valore salvato con l’ora corrente e visualizza la differenza. All’inizio di una sezione di codice che vuoi analizzare, chiami la prima routine (che salva l’ora di inizio) e poi alla fine della sezione di codice chiami la seconda routine. In questo modo, puoi determinare quali parti del tuo codice impiegano più tempo per essere eseguite. Queste sono le sezioni di codice su cui ti concentrerai, in modo da capire cosa stiano facendo che sta impiegando così tanto tempo.

Un’altra cosa di cui accertarsi è di aggiungere queste due righe all’inizio della macro:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Accedi per sbloccare il contenuto! Oppure abbonati qui.

Ti è stato utile?