Hoe wacht- en slaapopdrachten in vba te gebruiken?
VBA-wachtopdracht
In VBA helpt de WAIT-opdracht (methode) u om alle activiteiten die u in Excel uitvoert een bepaalde tijd of tot een bepaalde tijd te wachten. Simpel gezegd kunt u VBA een paar seconden, minuten of zelfs uren laten wachten, of tot een vaste tijd. Het bevat een argument waarvoor u het moet specificeren.
Stappen om VBA te gebruiken Wacht
- Gebruik eerst het trefwoord “Applicatie” en typ een punt (.) om de lijst met eigenschappen en methoden te krijgen.
- Selecteer of tik daarna op de methode “Wachten”.
- Geef nu het argument “Tijd” op om VBA te vertellen hoe lang u wilt wachten.
- Voer aan het einde de code uit om alle activiteiten in Excel in de wachtrij te plaatsen.
In deze code gebruikte je NOW en TIMEVALUE ( VBA Functions ) om VBA te vertellen tien seconden te wachten vanaf het moment dat je de code uitvoerde. Dus zodra de tien seconden voorbij zijn, zal de IF-instructie de voorwaarde testen en uitvoeren, waarbij u een berichtvenster ziet met het bericht “Wait Over”.
Sub vba_wait_example() If Application.Wait(Now + TimeValue("00:00:10")) = True Then MsgBox "Wait Over" End If End Sub
U kunt ook de wachtmethode gebruiken om Excel tot een bepaald tijdstip op alle activiteiten te laten wachten. De volgende code wacht tot 13:00 uur. Omdat het nu 12:52 uur is in mijn systeem, zorgt deze lijncode ervoor dat de code de volgende 8 minuten wacht.
Application.Wait "13:00:00"
Opmerking: met de wachtmethode kunt u slechts minimaal één seconde wachten.
VBA-slaap
Slaap is een Windows-functie ( onder Windows DLL-bestanden; u moet deze functie importeren met behulp van een code-instructie ) die u kan helpen bij het pauzeren of toevoegen van een vertraging bij het uitvoeren van een macro . In deze functie kunt u de tijd in milliseconden opgeven, maar u kunt de slaapfunctie niet stoppen nadat alles is gepauzeerd.
Gebruik de slaapfunctie in VBA
- Allereerst moet je de code-instructie gebruiken om de slaapfunctie uit de “ kernel32-bibliotheek ” te importeren.
- En dan moet u ervoor zorgen dat u de “PtrSafe” -instructie toevoegt als u 64-bit Excel gebruikt.
- Vervolgens moet u de slaapfunctie in code aanroepen.
- Geef aan het einde de tijd (milliseconden) op waarop u de code wilt vertragen.
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
In de bovenstaande code heb je 10.000 milliseconden, wat gelijk is aan 10 seconden. Wanneer u deze code uitvoert, wordt de code 10 seconden vertraagd en wordt er vervolgens een berichtvenster weergegeven.
Opmerking: wanneer u de slaapfunctie gebruikt, stopt deze alles in Excel voor de door u ingestelde tijd, u kunt deze niet eens verbreken. Bekijk zeker deze link van Microsoft over compatibiliteit tussen 32-bits en 64-bits versies .