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 Template

Pří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 -

  1. Jak používat VBA IsNumeric funkci?
  2. Vytváření pole se seznamem v Excelu
  3. Vložit CheckBox v Excelu
  4. Funkce VBA UCASE v Excelu

Kategorie: