Funkce čekání VBA - Jak používat Excel VBA Wait Method?

Funkce čekání aplikace Excel VBA

VBA Wait je vestavěná funkce používaná k pozastavení provádění kódu po stanovenou dobu, je velmi podobná tomu, co děláme v příkazu spánku, a k pozastavení kódu používáme metodu application.wait.

Některé z kódů vyžadují někdy před přechodem na další řádek kódu z důvodu dokončení dalších úkolů. V těchto případech musíme zastavit provádění kódu a nějakou dobu pozastavit, poté pokračovat v provádění. Můžeme pozastavit provádění kódu dvěma způsoby, prvním je metoda „Spánek“ a druhým metoda „Čekání“. V našem dřívějším článku jsme diskutovali o metodě „VBA spánku“ k pozastavení kódu VBA.

„Počkejte,“ jak již název napovídá, bude obsahovat kód makra, který má být spuštěn, do stanoveného časového rámce. Pomocí této metody musíme určit čas, kdy se má náš kód pozastavit. Dále uvidíme příklady.

Syntaxe funkce WAIT je následující.

Musíme zmínit dobu, po kterou by se náš kód měl pozastavit. Jak můžete vidět na konci, říká Boolean. To znamená, že vrátí výsledek jako logické hodnoty, tj. PRAVDA nebo NEPRAVDA.

Dokud nedorazí zadaný čas, říká FALSE a v okamžiku, kdy dorazí zadaný čas, vrátí PRAVDA.

To se nepodobá funkci SLEEP, protože WAIT je integrovaná funkce, kde SLEEP je funkce Windows. Než vstoupíme do funkce SLEEP, musíme zmínit níže uvedený kód v horní části modulu. Ale WAIT to nevyžaduje.

Kód:

# Pokud VBA7 pak veřejné deklaruje PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds jako LongPtr) 'pro 64bitové systémy #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds tak dlouho)' pro 32bitové systémy končí, pokud

Příklady použití funkce Excel VBA Wait

Příklad č. 1

Předpokládejme, že pracujete v aplikaci Excel v poledne ve 14:30:00 a chcete, aby byl váš kód pozastaven, dokud se čas nestane 14:40:00. Můžete použít níže uvedený kód.

Kód:

Sub Wait_Example1 () Application.Wait "14:40:00" Konec Sub

Tento kód zastaví vaši excelu v práci, dokud ve vašem operačním systému čas nedosáhne 14:40:00. Poskytování takového času je nebezpečné, protože ne vždy pracujeme od 14:30:00. Stále se to mění.

Řekněme, kdykoli používáte kód. Chcete počkat 2 minuty, jak na to ve svém kódu odkazujete?

Můžeme tedy použít funkci VBA NOW s funkcí TIME VALUE k zadání zadaného času z aktuálního času.

Jen pro připomenutí, funkce NOW () vrací aktuální datum a čas podle vašeho počítačového systému. Funkce TIMEVALUE představuje čas od 00:00:00 do 23:59:59 tj. 23:59:59 ve 24hodinovém formátu. Převádí hodnotu řetězce na hodnotu času.

Příklad NOW () + TIMEVALUE (00:02:30) znamená Aktuální čas + 2 min 30 s.

Pokud je aktuální čas 14:25:30, stane se 14:28:00.

Chcete-li zastavit nebo pozastavit provádění kódu od aktuálního času do následujících 10 minut, můžete použít níže uvedený kód.

Kód:

Sub Wait_Example2 () Application.Wait (Now () + TimeValue ("00:10:00")) End Sub

Pro přesnou pauzu je důležité použít funkci NOW (). V opačném případě existuje šance, že sešit aplikace Excel pozastavil až do půlnoci. Z metody pozastavení však můžeme kdykoli vyjít stisknutím klávesy Esc nebo klávesy Break.

Příklad č. 2

Po každém spuštění smyčky počkejte 10 sekund

Metoda čekání se dobře používá u smyček. Existují situace, kdy budete možná muset počkat 10 sekund při každém spuštění smyčky. Podívejte se například na níže uvedená data.

Chcete-li vypočítat Zisk = (Prodej - Náklady), chcete vytvořit smyčku a po každé smyčce chcete počkat 10 sekund, abyste zkontrolovali, zda je výsledek přesný. Níže uvedený kód to udělá.

Kód:

Sub Wait_Example3 () Dim k As Integer Pro k = 2 až 9 buněk (k, 4). Hodnota = buňky (k, 2) - buňky (k, 3) Application.Wait (Now () + TimeValue ("00:00) : 10 ")) Další k Konec Sub

Tento kód vypočítá sloupec zisku řádek po řádku. Po dokončení prvního řádku počká 10 sekund, než vypočítá další řádek.

VBA Spánek vs. VBA Počkejte

VBA SLEEP VBA ČEKEJTE
Není to vestavěná funkce VBA, pro přístup k této funkci potřebuje speciální kód. Jedná se o vestavěnou funkci VBA, pro přístup k této funkci nevyžaduje žádný speciální kód.
Spánek vyžaduje jako časový rámec milisekundy. Čekání vyžaduje pravidelný časový rámec.
Můžeme zpozdit kód v milisekundách. Můžeme zdržet jen celé sekundy.

Zajímavé články...