Come utilizzare i comandi wait e sleep in vba?
Comando di attesa VBA
In VBA, il comando (metodo) WAIT ti aiuta ad attendere tutte le attività che stai svolgendo in Excel per un certo tempo o fino a un’ora specifica. In poche parole, puoi fare in modo che VBA attenda alcuni secondi, minuti o addirittura ore o fino a un tempo prestabilito. Ha un argomento che richiede di specificarlo.
Passaggi per utilizzare VBA Attendi
- Innanzitutto, utilizza la parola chiave “Applicazione” e digita un punto (.) per ottenere l’elenco di proprietà e metodi.
- Successivamente, seleziona o tocca il metodo “Aspetta”.
- Ora specifica l’argomento “Tempo” per indicare a VBA quanto tempo vuoi attendere.
- Alla fine, esegui il codice per mettere in coda tutte le attività in Excel.
In questo codice, hai utilizzato NOW e TIMEVALUE ( Funzioni VBA ) per indicare a VBA di attendere dieci secondi dal momento in cui esegui il codice. Quindi, una volta trascorsi i dieci secondi, l’istruzione IF testerà la condizione ed eseguirà mostrandoti una finestra di messaggio con il messaggio “Wait Over”.
Sub vba_wait_example() If Application.Wait(Now + TimeValue("00:00:10")) = True Then MsgBox "Wait Over" End If End Sub
Puoi anche utilizzare il metodo Wait per consentire a Excel di attendere tutte le attività fino a un’ora specifica. Il seguente codice attende fino alle 13:00. Quindi, poiché nel mio sistema sono le 12:52 in questo momento, questo codice di linea lo farà attendere per i prossimi 8 minuti.
Application.Wait "13:00:00"
Nota: con il metodo wait è possibile attendere solo almeno un secondo.
Sonno VBA
Sleep è una funzione di Windows ( sotto i file DLL di Windows; è necessario importare questa funzione utilizzando un’istruzione di codice ) che può aiutarti a mettere in pausa o aggiungere un ritardo durante l’esecuzione di una macro . In questa funzione è possibile specificare il tempo in millisecondi, ma non è possibile interrompere la funzione di sospensione una volta che ha messo tutto in pausa.
Utilizzare la funzione di sospensione in VBA
- Prima di tutto è necessario utilizzare l’istruzione code per importare la funzione sleep dalla “ libreria kernel32 ”.
- E poi devi assicurarti di aggiungere l’istruzione “PtrSafe” se stai utilizzando Excel a 64 bit.
- Quindi è necessario chiamare la funzione sleep nel codice.
- Alla fine, specifica il tempo (millisecondi) in cui desideri ritardare il codice.
If VBA7 Then ' For 64-Bit versions of Excel
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Else 'For 32-Bit versions of Excel Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) End If Sub vba_sleep() Sleep (10000) 'add code here MsgBox "Finished" End Sub
Nel codice sopra hai 10.000 millisecondi, che equivalgono a 10 secondi. Quando esegui questo codice, ritarderà il codice di 10 secondi e quindi mostrerà una finestra di messaggio.
Nota: quando usi la funzione di sospensione, interrompe tutto in Excel per il tempo impostato, non puoi nemmeno interromperlo. Assicurati di controllare questo collegamento di Microsoft sulla compatibilità tra le versioni a 32 e 64 bit .