Funzione VBA Sleep

La funzione di sospensione in VBA è in realtà una funzione di Windows. È simile alla funzione di attesa in VBA. Viene utilizzato per rallentare o mettere in pausa oppure possiamo dire di interrompere l'esecuzione di un codice specifico entro un determinato periodo di tempo. La funzione di sospensione deve essere chiamata in VBA mentre viene dichiarata nel codice. Come lo faremo impareremo nell'argomento di oggi.

Come spiegato sopra, VBA Sleep è una funzione di Windows ed è presente nel database del kernel di Windows. Il metodo di dichiarazione e chiamata della funzione sleep in VBA è diverso sia per i sistemi operativi a 32 bit che per i sistemi operativi a 64 bit. È fondamentalmente una funzione API di Windows.

La sintassi per utilizzare la funzione VBA Sleep è la seguente:

Sleep (Time in Mili Seconds)

Quindi, se dobbiamo rallentare o arrestare il codice per 1 secondo, dobbiamo scrivere il codice come:

 Dormi 1000 

1000 sono i mili secondi che equivalgono a 1 secondo e rallenteranno il codice per 1 secondo. Se vogliamo rallentare il codice per 5 secondi, il codice sarà:

 Dormi 5000 

La dichiarazione per la funzione sleep è la seguente:

 #Se VBA7 Allora 'Excel 2010 o successivo Dichiarare pubblico PtrSafe Sub Sleep Lib "kernel32" (ByVal Millisecondi come LongPtr) #Else' Excel 2007 o precedente Dichiarare pubblico Sub Dormire Lib "kernel32" (ByVal Millisecondi come Long) #End If 
Nota: prima di utilizzare la funzione sleep c'è una cosa che dobbiamo tenere a mente. Dobbiamo usare questa funzione nei moduli, non negli oggetti di Excel. Per utilizzare VBA per assicurarsi che la scheda dello sviluppatore sia attivata dalla scheda File nella sezione Opzioni.

Come utilizzare la funzione di sospensione Excel VBA?

Impareremo come utilizzare una funzione VBA Sleep con alcuni esempi in Excel.

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

Funzione VBA Sleep - Esempio n. 1

Quello che faremo in questo esempio è far apparire un messaggio all'utente che la macro si fermerà per cinque secondi. E esattamente dopo cinque secondi, vogliamo che appaia un secondo messaggio che dice che la macro è ripresa.

Seguire i passaggi seguenti per utilizzare la funzione di sospensione in Excel VBA:

Passaggio 1: vai alla scheda Sviluppatore e fai clic su Visual Basic per aprire VB Editor.

Passaggio 2: una volta aperto VB Editor, fare clic su Inserisci scheda, quindi fare clic sui moduli per inserire un nuovo modulo.

Passaggio 3: ora utilizzare la dichiarazione dichiarazione per utilizzare la funzione sleep. Poiché sto usando il sistema operativo Windows a 64 bit, userò la dichiarazione di dichiarazione per lo stesso.

Codice:

 Dichiarazione pubblica PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Passaggio 4: ora dichiarare la sotto-funzione per iniziare a scrivere il codice.

Codice:

 Dichiarare pubblicamente PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () End Sub 

Passaggio 5: utilizzare la funzione Mgsbox per visualizzare il messaggio che la macro verrà messa in pausa per cinque secondi.

Codice:

 Dichiarare pubblicamente PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sottotitolo () MsgBox "MAcro verrà sospeso per cinque secondi" End Sub 

Passaggio 6: utilizzare la funzione Sleep per mettere in pausa la macro per cinque secondi.

Codice:

 Dichiarare pubblicamente PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sottotitolo () MsgBox "MAcro verrà sospeso per cinque secondi" Sleep 5000 End Sub 

Passaggio 7: ora utilizza la funzione msgbox per visualizzare il messaggio che la macro è stata ripresa.

Codice:

 Dichiarare pubblicamente PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sottotitolo () MsgBox "MAcro verrà sospeso per cinque secondi" Sleep 5000 MsgBox "La macro è stata ripresa" End Sub 

Passaggio 8: eseguire il codice dal pulsante Esegui fornito o premere F5 per visualizzare il risultato. Vediamo che viene visualizzato il primo messaggio.

Passaggio 9: Dopo aver fatto clic su OK e attendere cinque secondi, viene visualizzato un altro messaggio.

Ci fu una pausa di cinque secondi tra i due messaggi.

Funzione VBA Sleep - Esempio n. 2

Ora quello che faremo in un altro esempio è che ho quattro variabili A, B, C e D. Innanzitutto, voglio aggiungere il valore di A e B e visualizzarlo e dopo 5 secondi voglio visualizzare il valore di l'aggiunta di A, B, C e D.

Seguire i passaggi seguenti per utilizzare la funzione di sospensione in Excel VBA:

Passaggio 1: vai alla scheda Sviluppatore e fai clic su Visual Basic per aprire VB Editor.

Passaggio 2: una volta aperto VB Editor, fare clic su Inserisci scheda, quindi fare clic sui moduli per inserire un nuovo modulo.

Passaggio 3: ora utilizzare la dichiarazione dichiarazione per utilizzare la funzione sleep. Poiché sto usando il sistema operativo Windows a 64 bit, userò la dichiarazione di dichiarazione per lo stesso.

Codice:

 Dichiarazione pubblica PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Passaggio 4: ora dichiarare la sotto-funzione per iniziare a scrivere il codice.

Codice:

 Dichiarare pubblicamente PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () End Sub 

Passaggio 5: dichiarare sei variabili A, B, C, D, X e Y per memorizzare i valori.

Codice:

 Dichiarare pubblico PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sottotitolo1 () Dim A, B, C, D, X, Y come intero fine sottotitolo 

Passaggio 6: assegnare valori casuali a A, B, C e D.

Codice:

 Dichiarare pubblico PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y come numero intero A = 10 B = 15 C = 20 D = 25 End Sub 

Passaggio 7: memorizzare il valore di A + B in X.

Codice:

 Dichiarare pubblicamente PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sottotitolo 1 () Dim A, B, C, D, X, Y come intero A = 10 B = 15 C = 20 D = 25 X = A + B End Sub 

Passaggio 8: visualizza il valore di X.

Codice:

 Dichiarare pubblicamente PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sottotitolo 1 () Dim A, B, C, D, X, Y come intero A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub 

Passaggio 9: ora utilizza la funzione sleep per fare una pausa di cinque secondi.

Codice:

 Dichiarare pubblicamente PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sottotitolo 1 () Dim A, B, C, D, X, Y come intero A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub 

Step 10: Ora nella variabile Y memorizza il valore di X + C + D e visualizzalo.

Codice:

 Dichiarare pubblicamente PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sottotitolo 1 () Dim A, B, C, D, X, Y come intero A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 Y = X + C + D MsgBox Y End Sub 

Passaggio 11: eseguire il codice sopra dal pulsante Esegui fornito o premendo il tasto F5 e vedere il risultato. Vediamo che il primo messaggio viene visualizzato come.

Passaggio 12: premere OK e la macro attende per cinque secondi e visualizza il risultato successivo.

Funzione VBA Sleep - Esempio n. 3

In questo esempio, vogliamo rinominare due fogli di lavoro foglio 1 e foglio 2 rispettivamente come Anand e Aran. Ma la durata tra entrambi dovrebbe essere di cinque secondi. Fondamentalmente, vogliamo che la macro venga messa in pausa dopo aver rinominato il foglio 1 e quindi rinominato il foglio 2. Attualmente, entrambi i fogli sono denominati come segue:

Seguire i passaggi seguenti per utilizzare la funzione di sospensione in Excel VBA:

Passaggio 1: vai alla scheda Sviluppatore e fai clic su Visual Basic per aprire VB Editor.

Passaggio 2: una volta aperto VB Editor, fare clic su Inserisci scheda, quindi fare clic sui moduli per inserire un nuovo modulo.

Passaggio 3: ora utilizzare la dichiarazione dichiarazione per utilizzare la funzione sleep. Poiché sto usando il sistema operativo Windows a 64 bit, userò la dichiarazione di dichiarazione per lo stesso.

Codice:

 Dichiarazione pubblica PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Passaggio 4: ora dichiarare la sotto-funzione per iniziare a scrivere il codice.

Codice:

 Dichiarare pubblicamente PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () End Sub 

Passaggio 5: attiva il foglio di lavoro 1 e rinominalo con il seguente codice:

Codice:

 Dichiarare pubblicamente PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sottotitolo 2 () Fogli di lavoro ("Foglio1"). Attiva fogli di lavoro ("Foglio1"). Nome = "Anand" MsgBox "Foglio 1 rinominato" Fine sottotitolo 

Passaggio 6: ora utilizza la funzione di sospensione per utilizzare il ritardo per cinque secondi.

Codice:

 Dichiarare pubblicamente PtrSafe Sottotitoli in sospensione "kernel32" (ByVal dwMilliseconds As LongPtr) Sottotitoli secondari 2 () () Foglio di lavoro ("Foglio1"). Attiva fogli di lavoro ("Foglio1"). Nome = "Anand" MsgBox "Foglio 1 rinominato" Sonno 5000 Fine sottotitoli 

Passaggio 7: Ora rinominare il foglio 2 con il seguente codice.

Codice:

 Dichiarare pubblicamente PtrSafe Sottotitoli in sospensione "kernel32" (ByVal dwMilliseconds As LongPtr) Sottotitoli secondari 2 () () Foglio di lavoro ("Foglio1"). Attiva fogli di lavoro ("Foglio1"). Nome = "Anand" MsgBox "Foglio 1 rinominato" Fogli di lavoro 5000 (( Foglio2 "). Attiva fogli di lavoro (" Foglio2 "). Nome =" Aran "MsgBox" Foglio 2 rinominato "Fine sottotitoli 

Passaggio 8: ora esegui il codice e vediamo che viene visualizzato il primo messaggio.

Inoltre, possiamo verificare che il foglio 1 sia stato rinominato.

Passaggio 9: premere ok e attendere cinque secondi per rinominare il messaggio successivo e il secondo foglio.

Anche il secondo foglio viene rinominato.

Cose da ricordare

  • VBA Sleep è una funzione di finestra, quindi per poter usare dobbiamo usare dichiarazioni di dichiarazione.
  • Esistono diverse dichiarazioni di dichiarazione per diversi tipi di sistemi operativi.
  • Il semplice utilizzo di VBA Sleep blocca la macro per la durata fornita.
  • Il parametro time assegnato alla funzione sleep VBA è in millisecondi.

Articoli consigliati

Questa è una guida alla funzione Sleep di VBA. Qui discutiamo come utilizzare la funzione Sleep VBA di Excel insieme ad esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. VBA VLOOKUP, funzione
  2. Funzione DCOUNT in Excel
  3. Copia incolla VBA
  4. Funzione COMBIN in Excel

Categoria: