Pozastavte kód ve VBA
I divit, jak by bylo skvělé, kdybychom mohli spustit kód podle našeho času dovolí, protože do té doby se nám podaří dokončit další práci a připravit data pro další práci. Toto je potřeba jakéhokoli druhu úkolů, kde musíme spouštět jednu sadu kódu a pracovat na jiných věcech podle požadavků na kód, a dokud se nespustí druhá část kódu, budeme připraveni s daty, která potřebujeme ke zpracování s stejný kód. To lze provést pomocí aplikace VBA v režimu spánku a čekání. Spánkem a čekáním můžeme kód kdykoli pozastavit. Čas může být v sekundách nebo čas podle hodin.
Syntaxe VBA Pause v Excelu
Syntaxe pro VBA Pause je následující:
Příklady pozastavení kódu VBA v aplikaci Excel
Níže jsou uvedeny různé příklady pozastavení kódu VBA v aplikaci Excel.
Tuto šablonu VBA Pause Excel si můžete stáhnout zde - VBA Pause Excel TemplatePříklad č. 1 - Pauza VBA
V tomto příkladu uvidíme, jak funguje VBA Wait. Jak vidíme, aplikace Wait umožňuje Time jako Boolean. Což znamená, že pokud je hodnota, kterou podáváme, správná, dostaneme ji jako PRAVDĚ NEPRAVDA.
Chcete-li vidět, jak bude VBA Pause pracovat s aplikací Wait ve VBA,
Krok 1: Nejprve potřebujeme modul, do kterého budeme psát kód. Přejděte do nabídky Vložit a z rozbalovací nabídky vyberte možnost Modul, jak je uvedeno níže.
Krok 2: Nyní zadejte podkategorii do názvu VBA Pause nebo do jakéhokoli jiného jména podle vašeho výběru, jak je uvedeno níže.
Kód:
Sub VBAPause1 () End Sub
Pro pauzu VBA potřebujeme nějakou sadu textu, kterou bychom chtěli vytisknout s pauza. Uvažujme tento text jako „ Get… Set… Go… !! “. Vybereme tedy 3 různé buňky, kde budeme tato textová slova uchovávat odděleně v každé buňce.
Krok 3: Vyberte první oblast buněk jako A1 nebo jakoukoli jinou buňku podle volby a pro její přidělení vyberte funkci Value value a přiřaďte jí hodnotu, jak jsme stanovili výše. Nebo zvolte libovolnou hodnotu podle výběru.
Kód:
Rozsah Sub VBAPause1 () ("A1"). Hodnota = "Get …" End Sub
Krok 4: Přiřaďte zbývající hodnoty stejným způsobem jako pro první hodnotu. Zde vybíráme buňky od A1 do C1 jako naši řadu.
Kód:
Rozsah Sub VBAPause1 () ("A1"). Hodnota = "Get …" Range ("B1"). Hodnota = "Set …" Range ("C1"). Hodnota = "Go .. !!!" End Sub
Krok 5: Pokud náhodou spustíme celý kód, dostaneme všechny hodnoty. Set… Jdi .. !!! v jednom přechodu z buňky A1 do C1, jak je ukázáno níže.
Krok 6: Nyní, pokud chceme přestávku mezi celou přestávkou, budeme muset použít aplikaci Čekat, jak je ukázáno níže. Tuto aplikaci budeme používat těsně nad posledním rozsahem.
Kód:
Rozsah Sub VBAPause1 () ("A1"). Hodnota = "Get …" Range ("B1"). Value = "Set …" Application.Wait (Range ("C1").) Hodnota = "Go ..!" !! "End Sub
Krok 7: V závorce aplikace Wait můžeme psát čas ve formátu 24HR nebo ve formátu AM / PM. Uvažujeme o formátu 24HR. Nyní chceme napsat čas ve formátu HH: MM: SS, když chceme po pauze spustit zbytek kódu.
Kód:
Rozsah Sub VBAPause1 () ("A1"). Hodnota = "Get …" Range ("B1"). Value = "Set …" Application.Wait ("12: 26: 00") Range ("C1") .Value = "Go .. !!!" End Sub
Krok 8: Nyní zkompilujte kód a spusťte jej znovu. Uvidíme, v buňce A1 máme hodnotu buňky jako „Get…“ a kurzor stále běží na čekání.
Krok 9: A jakmile hodiny dosáhnou ve 12:25:00 hodin, pak se zbývající hodnoty buněk v buňkách B1 a C1 opět zjevně objeví, jak je ukázáno níže.
Příklad č. 2 - Pauza VBA
Existuje další způsob, jak můžeme pozastavit kód bez přidání nebo změny času v aplikaci Čekat několikrát. Za tímto účelem bychom odkazovali na stejný kód, jaký jsme viděli v příkladu 1.
Krok 1: Nyní v závorce aplikace Wait napište Now () s TimeValue, který chceme dát. Uvažujme pauzu 30 sekund.
Kód:
Rozsah Sub VBAPause2 () ("A1"). Hodnota = "Získat …" Rozsah ("B1"). Hodnota = "Nastavit …" Application.Wait (Now () + TimeValue ("00:00:30") ) Rozsah ("C1"). Hodnota = "Jdi .. !!!" End Sub
Krok 2: Takže když spustíme kód, VBA vezme v úvahu aktuální čas a přidá pauzu 30 sekund. A bude to fungovat podobným způsobem jako v příkladu 1. Pro kontrolu spusťte kód.
Nejprve dostaneme první hodnotu buňky na A1.
A po 30 sekundách pauzy dá zbytek hodnot v buňce B1 a C1.
Příklad č. 3 - Pauza VBA
V tomto příkladu uvidíme, jak VBA Pause pracuje s aplikací Sleep . Níže je uvedena syntaxe aplikace Sleep, která umožňuje ByVal dwMilliseconds pouze jako LongPtr .
Tato hodnota je nyní ve VBA. Musíme zadat předdefinovaný kód, který je k dispozici v MS Docs, jak je ukázáno níže.
Krok 1: Nyní napište podkategorii pro VBA Pause, jak je ukázáno níže.
Kód:
Sub VBAPause3 () End Sub
Krok 2: Za tímto účelem bychom potřebovali definovat 2 proměnné pro počáteční a spací čas jako řetězec, jak je ukázáno níže.
Kód:
Sub VBAPause3 () Dim začínající jako řetězec Dim Spící jako řetězec konec Sub
Krok 3: Přiřaďte funkci času první proměnné, která začíná .
Kód:
Sub VBAPause3 () Dim začínající jako řetězec Dim Spící jako řetězec začínající = Časový konec Sub
Krok 4: A pomocí Msgbox zobrazíte hodnotu uloženou v počáteční proměnné.
Kód:
Sub VBAPause3 () Dim začínající jako řetězec Dim Spící jako řetězec začínající = čas MsgBox počáteční konec Sub
Krok 5: Nyní použijte aplikaci Spánek a přidělte počet milisekund, než chceme funkce spát.
Kód:
Sub VBAPause3 () Dim začátek jako řetězec Dim spánek jako řetězec začínající = čas MsgBox začíná spánek = časový konec Sub
Krok 6: Nyní podobným způsobem přidejte aplikaci Time do druhé proměnné Sleeping . A pomocí MsgBoxu zobrazíte hodnotu uloženou v proměnné Sleeping, jak je ukázáno níže.
Kód:
Sub VBAPause3 () Dim začínající jako String Dim Spící jako String Starting = Time MsgBox Start Sleep = Time MsgBox Sleeping End Sub
Nakonec kód zkompilujte a spusťte kód kliknutím na tlačítko Přehrát umístěné pod nabídkovou lištou, jak je uvedeno níže. Dostaneme zprávu s časem, který bude naším Starting time.
Jakmile klikneme na tlačítko OK, po 5 000 milisekundách se zobrazí další okno se zprávou o době spánku, jak je ukázáno níže.
Čas na spaní začne hned poté, co klikneme na tlačítko OK. Není to časový rozdíl mezi časem Starting a Sleep. Ve skutečnosti je čas poté, co klikneme na tlačítko Ok v prvním okně zprávy.
Výhody VBA Pause
- Je velmi užitečné, když máme více funkcí, které mají být prováděny s určitým časovým intervalem.
- To lze použít pro účely analýzy a výpočtu.
Co si pamatovat
- Proces jako VBA Pause nelze provést zaznamenáním makra.
- Vždy je lepší použít postup uvedený v příkladu 2 pro aplikaci Wait, kde budeme mít jistotu, že čas znovu a znovu nebudeme měnit, namísto pouhého ponechání pauzy po několika sekundách po aktuálním čase.
- Spánek z příkladu 3 umožňuje pouze milisekundy
- Přednastavený kód zobrazený na začátku příkladu 3 je důležitou součástí, která se použije, protože uspokojí syntaxi aplikace Sleep.
Doporučené články
Toto je průvodce VBA Pause. Zde diskutujeme o tom, jak můžeme kód kdykoli pozastavit pomocí aplikace Wait and Sleep Application. Můžete také projít naše další doporučené články -
- Jak používat VBA IsNumeric funkci?
- Vytváření pole se seznamem v Excelu
- Vložit CheckBox v Excelu
- Funkce VBA UCASE v Excelu