Wstrzymaj kod w VBA
Zastanawiam się nawet, jak byłoby wspaniale, gdybyśmy mogli uruchomić kod według naszego czasu, ponieważ do tego czasu zdołalibyśmy ukończyć drugą pracę i przygotować te dane do dalszej pracy. Jest to konieczne do wszelkiego rodzaju zadań, w których musimy uruchomić jeden zestaw kodu i pracować nad innymi rzeczami zgodnie z wymaganiami kodu i dopóki nie uruchomi się inna część kodu, będziemy gotowi na dane, które musimy przetworzyć za pomocą ten sam kod. Można to zrobić za pomocą aplikacji VBA Sleep i Wait. Za pomocą funkcji Sleep and Wait możemy wstrzymać kod w dowolnym momencie. Czas może być wyrażony w sekundach lub w czasie według zegara.
Składnia pauzy VBA w programie Excel
Składnia pauzy VBA jest następująca:
Przykłady wstrzymywania kodu VBA w programie Excel
Poniżej znajdują się różne przykłady Wstrzymaj kod VBA w programie Excel.
Możesz pobrać ten szablon pauzy VBA tutaj - Szablon pauzy VBAPrzykład # 1 - Pauza VBA
W tym przykładzie zobaczymy, jak działa VBA Wait. Jak widzimy aplikacja Wait zezwala na czas jako wartość logiczną. Co oznacza, że jeśli podawana wartość jest poprawna, otrzymalibyśmy ją jako PRAWDA, w przeciwnym razie FAŁSZ.
Aby zobaczyć, jak VBA Pause będzie działać z aplikacją Wait w VBA,
Krok 1: Po pierwsze, potrzebowalibyśmy modułu, w którym będziemy pisać kod do tego. Przejdź do menu Wstaw i wybierz opcję Moduł z menu rozwijanego, jak pokazano poniżej.
Krok 2: Teraz wpisz podkategorię w nazwie VBA Pause lub w dowolnej innej nazwie zgodnie z Twoim wyborem, jak pokazano poniżej.
Kod:
Sub VBAPause1 () End Sub
Do pauzy VBA potrzebujemy zestawu tekstów, który chcielibyśmy wydrukować z pauzą. Rozważmy ten tekst jako „ Get… Set… Go… !! ”. Tak więc wybierzemy 3 różne komórki, w których będziemy przechowywać te słowa tekstowe osobno w każdej komórce.
Krok 3: Wybierz pierwszy zakres komórki jako A1 lub dowolną inną komórkę zgodnie z wyborem, a aby nadać jej wartość, wybierz funkcję Wartość i nadaj jej wartość, którą ustaliliśmy powyżej. Lub wybierz dowolną wartość według wyboru.
Kod:
Sub VBAPause1 () Zakres („A1”). Wartość = „Get …” End Sub
Krok 4: Przypisz pozostałe wartości w taki sam sposób, jak w przypadku pierwszej wartości. Tutaj wybieramy komórki od A1 do C1 jako nasz zakres.
Kod:
Sub VBAPause1 () Range („A1”). Value = „Get …” Range („B1”). Value = „Set…” Range („C1”). Value = „Go .. !!!” Napis końcowy
Krok 5: Gdybyśmy uruchomili cały kod, otrzymalibyśmy wszystkie wartości Get. Ustaw… Idź .. !!! za jednym razem z komórki A1 do C1, jak pokazano poniżej.
Krok 6: Teraz, jeśli chcemy zrobić przerwę między całą pauzą, będziemy musieli użyć aplikacji Poczekaj, jak pokazano poniżej. Będziemy używać tej aplikacji tuż powyżej ostatniego zakresu.
Kod:
Sub VBAPause1 () Range („A1”). Value = „Get …” Range („B1”). Value = „Set…” Application.Wait (Range („C1”). Value = „Go ..! !!" Napis końcowy
Krok 7: W nawiasie aplikacji Wait możemy pisać czas w formacie 24HR lub w formacie AM / PM. Rozważamy format 24HR. Teraz napisz czas w formacie GG: MM: SS, kiedy po przerwie chcemy uruchomić resztę kodu.
Kod:
Sub VBAPause1 () Range („A1”). Value = „Get …” Range („B1”). Value = „Set…” Application.Wait („12: 26: 00”) Range („C1”) .Value = "Go .. !!!" Napis końcowy
Krok 8: Teraz skompiluj kod i uruchom go ponownie. Zobaczymy, w komórce A1 otrzymaliśmy wartość komórki jako „Get…” i kursor nadal działa w trybie oczekiwania.
Krok 9: Kiedy zegar osiągnie godzinę 12:25:00, pozostałe wartości komórek w komórkach B1 i C1 ponownie pojawią się, jak pokazano poniżej.
Przykład 2 - Pauza VBA
Istnieje inny sposób, w jaki możemy wstrzymać kod bez wielokrotnego dodawania lub zmieniania czasu w aplikacji Wait. W tym celu odsyłamy ten sam kod, który widzieliśmy w przykładzie 1.
Krok 1: Teraz w nawiasach aplikacji Wait napisz Now () z TimeValue, którą chcemy podać. Rozważmy przerwę 30 sekund.
Kod:
Sub VBAPause2 () Range („A1”). Value = „Get …” Range („B1”). Value = „Set…” Application.Wait (Now () + TimeValue („00:00:30”) ) Zakres („C1”). Wartość = „Idź .. !!!” Napis końcowy
Krok 2: Kiedy uruchomimy kod, VBA weźmie pod uwagę aktualny czas i doda 30 sekundową pauzę. I będzie działał w podobny sposób, jak działał w przykładzie 1. W celu sprawdzenia uruchom kod.
Najpierw otrzymamy pierwszą wartość komórki w A1.
A po 30 sekundach pauza da resztę wartości w komórkach B1 i C1.
Przykład # 3 - Pauza VBA
W tym przykładzie zobaczymy, jak VBA Pause działa z aplikacją Sleep . Poniżej znajduje się składnia aplikacji Sleep, która pozwala ByVal dwMilliseconds tylko jako LongPtr .
Teraz ta wartość jest w rzeczywistości w języku VBA. Musimy wprowadzić wstępnie zbudowany kod, który jest dostępny w MS Docs, jak pokazano poniżej.
Krok 1: Teraz napisz podkategorię dla pauzy VBA, jak pokazano poniżej.
Kod:
Sub VBAPause3 () End Sub
Krok 2: W tym celu musielibyśmy zdefiniować 2 zmienne Czas rozpoczęcia i uśpienia jako Ciąg, jak pokazano poniżej.
Kod:
Sub VBAPause3 () Ściemnianie Początek jako ciąg Ściemnianie Śpiący jako Ciąg Koniec Sub
Krok 3: Przypisz funkcję czasu do pierwszej zmiennej, która jest uruchamiana .
Kod:
Sub VBAPause3 () Przyciemnienie jako ciąg Przyciemnienie jako ciąg Rozpoczęcie = czas zakończenia Sub
Krok 4: I użyj Msgbox, aby zobaczyć wartość przechowywaną w zmiennej początkowej .
Kod:
Sub VBAPause3 () Dim Początek jako ciąg Dim Dim Sleeping As String Początek = Czas MsgBox Początek Koniec Sub
Krok 5: Teraz użyj aplikacji Uśpij i przydziel liczbę milisekund, aż będziemy chcieli spać funkcje.
Kod:
Sub VBAPause3 () Dim Począwszy jako ciąg Dim Ściemnianie jako ciąg Początek = czas MsgBox Początek uśpienia = czas Koniec Sub
Krok 6: Teraz w podobny sposób podaj aplikację Time drugiej zmiennej Sleeping . I użyj MsgBox, aby zobaczyć wartość przechowywaną w zmiennej Sleeping, jak pokazano poniżej.
Kod:
Sub VBAPause3 () Dim Początek jako ciąg Dim Dim Sleeping As String Początek = Czas MsgBox Początek Sleeping = Czas MsgBox Sleeping Koniec Sub
Na koniec skompiluj kod i uruchom kod, klikając przycisk Odtwórz znajdujący się pod paskiem menu, jak pokazano poniżej. Otrzymamy okno komunikatu z czasem, który będzie naszym czasem rozpoczęcia .
Po kliknięciu przycisku OK po 5000 milisekundach zostanie wyświetlone kolejne okno komunikatu z czasem uśpienia, jak pokazano poniżej.
Czas snu rozpocznie się zaraz po kliknięciu przycisku OK. To nie jest różnica czasu między czasem rozpoczęcia a snem. W rzeczywistości jest to czas po kliknięciu przycisku OK w pierwszym oknie wiadomości.
Zalety pauzy VBA
- Jest to bardzo przydatne, gdy mamy do wykonania wiele funkcji w określonym przedziale czasu.
- Można to wykorzystać do celów analizy i obliczeń.
Rzeczy do zapamiętania
- Procesu, takiego jak Pauza VBA, nie można wykonać, rejestrując makro.
- Zawsze lepiej jest użyć procesu pokazanego w przykładzie 2 dla aplikacji Wait, w którym będziemy mogli bezpiecznie zmieniać czas raz po raz, zamiast po prostu zatrzymać pauzę kilka sekund po bieżącym czasie.
- Aplikacja uśpienia z przykładu 3 dopuszcza tylko milisekundy
- Kod kompilacji wstępnej pokazany na początku przykładu 3 jest ważną częścią do zastosowania, ponieważ spełnia on składnię aplikacji Sleep.
Polecane artykuły
To jest przewodnik po pauzie VBA. Tutaj omawiamy, w jaki sposób możemy wstrzymać kod w dowolnym momencie za pomocą aplikacji Wait and Sleep. Możesz również przejrzeć nasze inne sugerowane artykuły -
- Jak korzystać z funkcji VBA IsNumeric?
- Tworzenie pola kombi w programie Excel
- Wstaw CheckBox do Excela
- Funkcja VBA UCASE w programie Excel