Wstrzymaj kod VBA przed uruchomieniem
VBA Pause służy do wstrzymania wykonania kodu na określony czas, a do wstrzymania kodu w VBA używamy metody application.wait.
Kiedy po wykonaniu czegoś budujemy duże projekty VBA, być może będziemy musieli poczekać trochę czasu, aby wykonać inne zadania. W takich scenariuszach, jak wstrzymać kod makra, aby wykonać nasze zadanie? Możemy wstrzymać kod VBA na określony czas, używając dwóch funkcji, a są to funkcje „Wait” i „Sleep”.

Jak wstrzymać kod za pomocą metody oczekiwania?
„Wait” to funkcja, której używamy w VBA, aby utrzymać makro działające przez określony czas. Stosując tę funkcję, musimy wspomnieć, do jakiego czasu nasz kod ma czekać.
Na przykład, jeśli wykonujesz kod o 13:00:00, jeśli podasz czas jako „13:15:00”, makro będzie działało przez 15 minut.
Teraz spójrz na argument funkcji WAIT w VBA.

W czasie kłótni musimy wspomnieć, o której godzinie nasz kod powinien się zatrzymać lub poczekać.
Na przykład spójrz na poniższy kod VBA.
Kod:
Sub Pause_Example1 () Zakres („A1”). Wartość = „Witaj” Zakres („A2”). Wartość = „Witamy” Aplikacja.Wait („13:15:00”) Zakres („A3”). Wartość = „ Do VBA „End Sub

Pamiętaj, że podczas uruchamiania tego kodu mój czas systemowy to 13:00:00. Jak tylko uruchomię kod, wykona on pierwsze dwie linie, tj
Zakres („A1”). Wartość = „Witaj” & Zakres („A2”). Wartość = „Witamy”
Ale jeśli spojrzysz na następną linię, zobaczysz Application.Wait („13:15:00”), więc po wykonaniu zadań tych linii moje makro zostanie wstrzymane na 15 minut, tj. Od 13:00:00, będzie czekać, aż mój czas systemowy osiągnie 13:15:01.
Gdy mój czas systemowy osiągnie ten czas, wykona pozostałe wiersze kodu.
Zakres („A3”). Wartość = „Do VBA”
Jednak nie jest to najlepszy sposób ćwiczenia kodu pauzy. Załóżmy, że uruchamiasz kod w różnym czasie, a następnie musimy użyć funkcji NOW VBA z funkcją WARTOŚĆ CZASU.
Funkcja Now zwraca aktualną datę i godzinę zgodnie z systemem, nad którym pracujemy.
Funkcja TIME Value przechowuje czas od 00:00:00 do 23:59:29.
Ok, załóżmy, że musimy wstrzymać kod na 10 minut za każdym razem, gdy uruchamiamy kod, a następnie możemy użyć poniższego kodu.
Kod:
Sub Pause_Example1 () Range („A1”). Value = „Hello” Range („A2”). Value = „Welcome” Application.Wait (Now () + TimeValue („00:00:10”)) Range („ A3 ”). Wartość =„ Do VBA ”End Sub

Jest to podobne do poprzedniego kodu, ale jedyną różnicą jest to, że dodaliśmy funkcję TERAZ & WARTOŚĆ CZASOWA.
Za każdym razem, gdy uruchamiamy ten kod, będzie on wstrzymywać lub wstrzymywać wykonywanie na 10 minut.
Jak wstrzymać kod VBA za pomocą metody uśpienia?
Uśpienie to skomplikowana funkcja w języku VBA, ponieważ nie jest funkcją wbudowaną. Ponieważ nie jest to wbudowane narzędzie, aby było dostępne do użytku, musimy dodać poniższy kod na początku naszego modułu.
Kod:
#If VBA7 Następnie publicznie zadeklaruj PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'Dla systemów 64-bitowych #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) #End If' Dla systemów 32-bitowych
Wystarczy skopiować powyższy kod i wkleić go u góry modułu.

Powód, dla którego musimy dodać powyższy kod, ponieważ SLEEP jest funkcją VBA prezentowaną w plikach DLL systemu Windows, więc musimy zadeklarować nomenklaturę przed rozpoczęciem podprocedury.
Ok, spójrzmy teraz na przykład funkcji SLEEP.
Kod:
Sub Pause_Example2 () Dim StartTime As String Dim EndTime As String StartTime = Time MsgBox StartTime Sleep (10000) EndTime = Time MsgBox EndTime End Sub

Najpierw zadeklarowaliśmy dwie zmienne jako String.
Dim StartTime As String Dim EndTime As String
Następnie przypisaliśmy funkcję TIME excel do zmiennej StartTime. Funkcja TIME zwraca aktualny czas zgodnie z systemem.
StartTime = czas
Następnie przypisaliśmy to samo do wyświetlenia w oknie komunikatu.
MsgBox StartTime
Następnie zastosowałem funkcję SLEEP jako Sleep (10000).
Tutaj 10000 to milisekundy, co w VBA odpowiada 10 sekundom.
W końcu przypisałem jeszcze jedną funkcję TIME do zmiennej EndTime .
Teraz znowu napisałem kod pokazujący czas.
EndTime = czas
To pokaże różnicę między godziną rozpoczęcia a czasem zakończenia.
Teraz wykonam kod i zobaczę, jaki jest czas rozpoczęcia.

Kiedy wykonuję kod, mój czas systemowy to 13:40:48, a teraz mój kod będzie spał na 10 sekund. W końcu mój czas wygląda następująco.

W ten sposób możemy wstrzymać wykonywanie kodu przez określony czas.