Časovač VBA | Příklady použití funkce časovače Excel VBA

Funkce Excel VBA TIMER

VBA Timer je vestavěná funkce, která nám dává zlomkovou hodnotu sekund, je to velmi užitečná funkce, která se používá k pozastavení jakékoli sady spuštěných kódů nebo k jejich obnovení na základě času poskytnutého uživatelem, časovač je jednoduše používá se jako prohlášení ve VBA se zadáním času.

Jednoduše TIMER udává celkový počet sekund od půlnoci aktuálního dne. Přímo z řádku jednoho z kódu můžeme skutečně sledovat čas spotřebovaný naším kódem k dokončení procesu uvedeného v dílčím postupu.

Někdy, když píšete kód a chcete otestovat dobu trvání kódu, tj. Jaký je celkový čas, který váš kód potřebuje k dokončení dílčího postupu. Testováním skutečné doby trvání vašeho kódu můžete zefektivnit svůj kód a eliminovat časově náročný proces odstraněním nežádoucích nebo dlouhých kódů z vašeho modulu.

Jak používat funkci TIMER ve VBA?

Jak jsem řekl, funkce TIMER vrací celkový počet sekund minulých od půlnoci aktuálního data. Když píšu tento článek, v Indii je čas 13:50:45.

Vytvořil jsem název makra a přiřadil hodnotu TIMER v okně zprávy VBA.

Kód:

 Sub Timer_Example1 () MsgBox Timer End Sub 

Když spustím tento kód, dostal jsem výsledek jako 50480.08.

To je celkový počet sekund uplynulých od dnešní půlnoci, tj. Od 12:00:00

Od půlnoci 12 do aktuálního času 14:01:20 tedy uplynulo celkem 14 hodin 1 minuta 20 sekund. V sekundách se to rovná 50480,08, což je dáno naší funkcí TIMER.

Příklady

Tuto šablonu VBA Timer Excel si můžete stáhnout zde - Šablona VBA Timer Excel

Příklad č. 1 - Vypočítejte celkovou dobu potřebnou pro váš kód

Nyní provedeme jednoduché kódování, abychom otestovali čas, který VBA potřebuje k provedení procedury. Napsal jsem nějaký kód, jak je znázorněno na následujícím obrázku.

Kód:

 Sub Do_Until_Example1 () Dim ST as Single ST = Timer Dim x As Long x = 1 Do Until x = 100000 Cells (x, 1). Hodnota = xx = x + 1 Loop MsgBox Timer - ST End Sub 

Pokud nyní spustím tento kód, zobrazí se mi celkový čas, který VBA potřebuje k provedení.

Říká 3.058594, výsledek daný touto funkcí je v sekundách, tj. Celkový čas zabraný tímto kódem je 3.058 sekund.

Pro použití kódu jsem pro vás napsal následující kód.

Kód:

 Sub Timer_Example1 () Dim StartingTime as Single StartingTime = Timer 'Sem zadejte svůj kód' Sem zadejte svůj kód 'Sem zadejte svůj kód' Sem zadejte svůj kód 'Časovač MsgBox - StartingTime Konec Sub 

Použijte výše uvedené a zadejte svůj kód po kódu StartingTime = Timer, ale před kódem MsgBox Timer - StartingTime tj. V zelené oblasti musíte zadat svůj kód.

Vysvětlení: Proměnná StartingTime = Timer znamená, že v době spuštění se kód rovná času uplynulému od půlnoci do doby spuštění kódu.

Časovač - StartingTime: To znamená po spuštění kódu, jaký je uplynulý čas mínus čas zaznamenaný na začátku kódu v průběhu proměnného počátečního času .

To dá rozdíl mezi časem zahájení a ukončení a vrátí výsledek.

Příklad č. 2 - Zobrazit výsledek ve správném formátu času

Jak jsme viděli, výsledek daný funkcí je v sekundách, ale ne v přesném formátu. Můžeme však použít časový formát VBA na konečný výsledek pomocí funkce FORMAT.

Pomocí níže uvedeného kódu můžete zobrazit výsledek ve správném formátu času, tj. Ve formátu „hh: mm: ss“.

Zde jsem použil funkci FORMAT. Výsledek je dán (Časovač - počáteční čas). Rozdělil jsem to na číslo 86400, abych jej převedl na sekundy podle pravidel formátu času, poté jsem použil formát času v hodinovém, minutovém a druhém formátu.

Teď, když spustím kód, dá takový výsledek.

Celkový čas, který kód zabere, je tedy 3 sekundy.

Krása tohoto kódu je v okamžiku, kdy překročí 60 sekund, zobrazí výsledek během několika minut. Pozastavil jsem svůj kód spuštěný na minutu (pomocí Ctrl + Break) a podívejte se na výsledek.

Takže celková doba, kterou tento kód potřebuje, je nyní 1 minuta 2 sekundy.

Příklad č. 3 - Alternativní kód k časovači

K funkci TIMER existuje alternativa pomocí funkce NOW () . Níže je uveden alternativní kód.

Věci k zapamatování

  • Funkce TIMER zastaví hodnotu na konci dne, tj. V 23:59:59.
  • Funkce NOW vrací aktuální datum a aktuální čas.
  • TIMER ukazuje celkový počet sekund minulých od aktuálního půlnoci.

$config[zx-auto] not found$config[zx-overlay] not found