Funzione DoEvents VBA di Excel

Quando scriviamo codici enormi, cadiamo sempre nella trappola di VBA. Quando il codice è grande, VBA impiega il proprio tempo per completare il processo di esecuzione e di esecuzione. Che può richiedere del tempo da un minuto a diversi minuti. Questo è il periodo in cui tutti si irritano. E non possiamo fare nient'altro in questo periodo di tempo. Ma per evitare ciò, abbiamo una funzione in VBA chiamata DoEvents. Con l'aiuto di DoEvents, possiamo eseguire il codice in background e contemporaneamente possiamo fare anche altri tipi di cose. Non possiamo lavorare solo su altri strumenti o software, ma possiamo anche interrompere il codice o interrompere il processo di esecuzione.

Una volta inserito DoEvents nel codice, quindi oltre a VBA, avremo anche il controllo del lavoro che vogliamo fare. La cosa buona di DoEvents è che non ha alcun tipo di sintassi da scrivere. Possiamo posizionare direttamente Doevents dove vogliamo prendere il controllo di VBA ed eseguire le attività secondo le nostre necessità.

Come usare la funzione DoEvents in Excel VBA?

Di seguito sono riportati i diversi esempi per utilizzare la funzione DoEvents in Excel utilizzando il codice VBA.

Puoi scaricare questo modello Excel VBA DoEvents qui - Modello Excel VBA DoEvents

Excel VBA DoEvents - Esempio n. 1

Sebbene per eseguire DoEvents abbiamo bisogno di un enorme set di dati in cui possiamo vedere come il codice viene interrotto. Quindi, useremo un ciclo, in cui i numeri verranno applicati fino al completamento del codice. Per questo, seguire i passaggi seguenti:

Passaggio 1: aprire un modulo in VBA dalla scheda del menu Inserisci come mostrato di seguito.

Passaggio 2: scrivere la sottoprocedura di VBA DoEvents o possiamo scegliere qualsiasi nome per definire il codice secondo le nostre necessità.

Codice:

 Sottotitolo secondario VBA_DoEvents () 

Passaggio 3: ora definire una variabile in qualsiasi nome con tipi di dati Long. Lo scopo di considerare il tipo di dati come Long è perché prenderemo tutta la lunghezza dei dati che desideriamo, il che non è possibile se consideriamo Integer.

Codice:

 Sottotitoli VBA_DoEvents () Dim A As Long End 

Passaggio 4: ora apri un ciclo For-Next in cui inseriremo le condizioni.

Codice:

 Sottotitoli VBA_DoEvents () Dim A lunghi per Next A End Sub 

Passaggio 5: considera l'intervallo di un numero a tua scelta che può essere visto implementato. Qui stiamo prendendo l'intervallo da 1 a 2000 nella variabile definita A.

Codice:

 Sottotitoli VBA_DoEvents () Dim. A lunghi da A = 1 a 20000 Succ. A Fine Sottotitoli 

Passaggio 6: Una volta definito l'intervallo di numeri, selezioneremo l'intervallo di celle in cui vedremo le modifiche ai numeri che abbiamo scelto sopra. Supponiamo che l'intervallo di celle sia compreso tra A1 e A5. Anche questa potrebbe essere una singola cella.

Codice:

 Sottotitoli VBA_DoEvents () Dim A lunghi per A = intervallo da 1 a 20000 ("A1: A5"). Valore = A Successivo A Fine Sottotitoli 

Passo 7: Ora esegui il codice facendo clic sul pulsante Riproduci situato sotto la barra dei menu.

Vedremo, il codice è stato completato stampando i numeri da 1 a 20000 ma non siamo riusciti a fermarlo.

Passaggio 8: per ottenere il pieno controllo del codice, applicare DoEvents dopo le condizioni del loop, come mostrato di seguito.

Codice:

 Sottotitoli VBA_DoEvents () Dim A lunghi per A = intervallo da 1 a 20000 ("A1: A5"). Valore = A DoEvents Next A End Sottotitoli 

Passaggio 9: eseguire nuovamente il codice. E in questo momento proviamo a interrompere il codice facendo clic sul pulsante di arresto, noteremo che il codice verrà arrestato tra i processi prima di completare la versione di prova di 20000.

Excel VBA DoEvents - Esempio n. 2

Esiste un altro tipo di processo per l'implementazione di DoEvents. Ma anche per questo avremo bisogno di un codice enorme come mostrato nell'esempio 1. Per questo, seguire i passaggi seguenti:

Passaggio 1: scrivere la sottoprocedura di DoEvents VBA come mostrato di seguito.

Codice:

 Sottotitolo secondario VBA_DoEvents2 () 

Passaggio 2: aprire direttamente un ciclo For-next senza definire una variabile.

Codice:

 Sottotitoli VBA_DoEvents2 () per sottotitoli Next End 

Passaggio 3: scegli un intervallo di numeri che vedremo in esecuzione. Lascia che l'intervallo sia compreso tra 1 e 20000 come nell'esempio 1.

Codice:

 Sottotitolo VBA_DoEvents2 () per A = da 1 a 20000 Sottotitolo successivo 

Passo 4: Ora metti direttamente qualsiasi lavoro per l'output, diciamo che l'output è come mostrato di seguito. E l'intervallo di valori sarà +1 del valore effettivo.

Codice:

 Sottotitoli VBA_DoEvents2 () per A = da 1 a 20000 Output = Output + 1 Next End Sub 

Passo 5: Ora seleziona l'intervallo in cui vogliamo vedere l'output. Lascia che la cella sia A1.

Codice:

 Sottotitoli VBA_DoEvents2 () per A = da 1 a 20000 Output = Output + 1 Range ("A1"). Valore = Output Next End Sub 

Step 6: E alla fine metteremo DoEvents alla fine della condizione del ciclo For.

Codice:

 Sottotitoli VBA_DoEvents2 () per A = da 1 a 20000 Output = Output + 1 Range ("A1"). Valore = Output DoEvents Next End Sub 

Passaggio 7: quindi eseguire il codice premendo il tasto F5. Vedremo, possiamo fare qualsiasi cosa anche quando il codice è in esecuzione. Per dimostrazione, ho selezionato le celle B1 e C1. I numeri hanno raggiunto solo 4348, che è piuttosto inferiore al limite che abbiamo impostato.

Passaggio 8: se rimuoviamo i DoEvent ed eseguiamo il codice, non saremo in grado di fare nulla fino a quando il codice non avrà completato il suo processo. Vediamo anche quello.

Codice:

 Sottotitoli VBA_DoEvents2 () per A = da 1 a 20000 Output = Output + 1 Range ("A1"). Valore = Output Next End Sub 

Passaggio 9: eseguire nuovamente il codice. Come possiamo vedere, mentre provavamo a fare clic su Stop, il codice non si fermava. E la funzione di riproduzione era ancora attiva.

Pro e contro di Excel VBA DoEvents

  • Possiamo lavorare su qualsiasi strumento o file in background mentre il codice VBA verrà eseguito in parallelo.
  • L'uso di DoEvents non ci impedisce di fare il lavoro che vogliamo quando il codice è in esecuzione.
  • Sovrascrive il foglio di lavoro o la cartella di lavoro quando si passa tra i diversi fogli di lavoro o cartella di lavoro.
  • Il codice si interrompe quando scriviamo o modifichiamo la cella per un momento e non riceviamo notifiche.

Cose da ricordare

  • Se facciamo qualcosa senza applicare DoEvents, allora c'è una grande possibilità che il codice blocchi il sistema e il file. E che riprenderemo i file una volta che il codice è stato completamente eseguito o arresteremo il file con più clic.
  • Possiamo vedere il cambiamento nel processo mentre lavoriamo sull'altro lavoro contemporaneamente.
  • Una volta completato il codice, salva il file in formato Excel abilitato per le macro per evitare di perdere il codice.
  • Prova ad applicare il codice in una serie enorme e grande di codice, vedremo l'implementazione e l'uso reali.

Articoli consigliati

Questa è una guida a VBA DoEvents. Qui discutiamo come usare la funzione DoEvents in Excel usando il codice VBA insieme ad esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Come utilizzare StrConv in Excel VBA?
  2. Converti i numeri in testo in Excel (esempi)
  3. Funzione VBA ByRef (esempi con modello Excel)
  4. SUMIFS di Excel con date | Modello di Excel

Categoria: