Ajouter un délai lors de l'exécution du code à l'aide de VBA
-
Exemple d’ajout de temps de retard dans VBA avec la commande
wait
-
Implémenter un schéma de mise à jour automatique à l’aide de la commande
wait
Lorsqu’il s’agit de calculs et de processus complexes utilisant VBA, le programmeur doit garder à l’esprit que certains algorithmes sont trop lourds et nécessitent un certain temps pour être traités. Le problème survient lorsque le processus en cours est toujours en cours d’exécution, mais que le compilateur VBA passe ensuite au processus suivant. Dans ce cas, des débordements et des erreurs se produiraient.
Une application typique du délai est lorsqu’il s’agit d’outils de grattage Web. Le site Web doit être entièrement chargé avant de supprimer les données. Sinon, une erreur se produira. Une autre application de ceci est lorsque nous devons exécuter une macro régulièrement pendant une période définie.
Cet article vous montrera comment ajouter un délai à l’aide de la commande wait
.
Syntaxe:
Application.Wait(Now + [delay time])
Où:
[delay time] |
Spécifie le temps de retard nécessaire. |
Exemple d’ajout de temps de retard dans VBA avec la commande wait
Sub DelayMe()
'Print the current time
Debug.Print Now
'Delay for 10 seconds start here
Application.Wait(Now + TimeValue("00:00:10"))
'Print the current time
Debug.Print Now
End Sub
Production :
12/21/2021 4:41:25 PM
12/21/2021 4:41:35 PM
Implémenter un schéma de mise à jour automatique à l’aide de la commande wait
Le bloc de code ci-dessous illustrera la mise en œuvre de schémas de mise à jour automatique à l’aide de la commande wait
. Il appellera la sous-routine GetTimeNow
toutes les 10 secondes.
Sub AutoUpdate()
'Main loop where the code execution takes place
Do
'Add a delay for every call
Application.Wait(Now + TimeValue("00:00:10"))
'Calls the GetTimeNow subroutine
Call GetTimeNow
Loop
End Sub
Sub GetTimeNow
'Print the time at the time of the call.
Debug.Print "The current time is: " & Now
End Sub
Production :
The current time is: 12/21/2021 4:59:30 PM
The current time is: 12/21/2021 4:59:48 PM
The current time is: 12/21/2021 5:00:01 PM
The current time is: 12/21/2021 5:00:16 PM