Funkcia spánku VBA

Funkcia spánku vo VBA je vlastne funkcia systému Windows. Podobá sa čakacia funkcia vo VBA. Používa sa na spomalenie alebo pozastavenie, alebo môžeme zastaviť beh konkrétneho kódu v určitom určenom čase. Funkcia spánku sa musí volať vo VBA, zatiaľ čo sa deklaruje v kóde. Ako to urobíme, sa naučíme v dnešnej téme.

Ako je vysvetlené vyššie, VBA Sleep je funkcia systému Windows a je prítomná v jadrovej databáze systému Windows. Metóda deklarovania a volania funkcie spánku vo VBA je odlišná pre 32-bitové operačné systémy aj 64-bitové operačné systémy. V podstate ide o funkciu rozhrania API systému Windows.

Syntax na použitie funkcie spánku VBA je nasledovná:

Spánok (čas v milisekundách)

Ak teda potrebujeme spomaliť alebo zastaviť kód na 1 sekundu, musíme ho napísať takto:

 Spať 1 000 

1000 je milión sekúnd, čo sa rovná 1 sekunde a spomalí kód na 1 sekundu. Ak chceme spomaliť kód na 5 sekúnd, kód bude:

 Spať 5 000 

Vyhlásenie o funkcii spánku je nasledovné:

 # Ak je VBA7, potom „Excel 2010 alebo novšia verejná deklarácia PtrSafe Sub Sleep Lib“ kernel32 ”(ByVal milisekundy ako LongPtr) #Else 'Excel 2007 alebo novšia verejná deklarácia Sub Sleep Lib“ kernel32 “(ByVal milisekundy sú dlhé) #End 
Poznámka: Pred použitím funkcie spánku je potrebné mať na pamäti jednu vec. Túto funkciu musíme použiť v moduloch, nie v excelentných objektoch. Použitie nástroja VBA na zabezpečenie toho, aby bola karta vývojára zapnutá na karte súbory v časti Možnosti.

Ako používať funkciu spánku Excel VBA?

Naučíme sa používať funkciu spánku VBA s niekoľkými vynikajúcimi príkladmi.

Túto šablónu VBA Sleep Excel si môžete stiahnuť tu - šablónu VBA Sleep Excel

Funkcia spánku VBA - príklad č. 1

V tomto príklade urobíme správu, že makro sa zastaví na päť sekúnd. A presne po piatich sekundách chceme, aby sa objavila druhá správa, ktorá hovorí, že makro sa obnovilo.

Ak chcete použiť funkciu spánku v programe Excel VBA, postupujte podľa nasledujúcich krokov:

Krok 1: Prejdite na kartu Vývojár a kliknutím na Visual Basic otvorte editor VB.

Krok 2: Po otvorení editora VB kliknite na kartu Vložiť a potom kliknutím na moduly vložte nový modul.

Krok 3: Teraz použite vyhlásenie a použite funkciu spánku. Pretože používam 64-bitový operačný systém Windows, použijem na to vyhlásenie.

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Krok 4: Teraz deklarujte subfunkciu, aby ste mohli začať písať kód.

kód:

 Verejná deklarácia PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () End Sub 

Krok 5: Pomocou funkcie Mgsbox sa zobrazí správa, že makro bude pozastavené na päť sekúnd.

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro bude pozastavený na päť sekúnd" End Sub 

Krok 6: Použite funkciu spánku na pozastavenie makra na päť sekúnd.

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro bude pozastavený na päť sekúnd" Sleep 5000 End Sub 

Krok 7: Teraz použite funkciu msgbox na zobrazenie správy, že makro bolo obnovené.

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "Makro bude pozastavené na päť sekúnd" Spánok 5000 MsgBox "Makro bolo obnovené" End Sub 

Krok 8: Spustite kód z poskytnutého tlačidla spustenia alebo stlačením klávesu F5 zobrazte výsledok. Vidíme, že sa zobrazí prvá správa.

Krok 9: Keď klikneme na OK a počkáme päť sekúnd, uvidíme ďalšiu správu.

Medzi oboma správami bola pauza na päť sekúnd.

Funkcia spánku VBA - príklad č. 2

Teraz urobíme v ďalšom príklade to, že mám štyri premenné A, B, C a D. Najprv chcem pridať hodnotu A a B a zobraziť ju a po 5 sekundách chcem zobraziť hodnotu pridanie A, B, C a D.

Ak chcete použiť funkciu spánku v programe Excel VBA, postupujte podľa nasledujúcich krokov:

Krok 1: Prejdite na kartu Vývojár a kliknutím na Visual Basic otvorte editor VB.

Krok 2: Po otvorení editora VB kliknite na kartu Vložiť a potom kliknutím na moduly vložte nový modul.

Krok 3: Teraz použite vyhlásenie a použite funkciu spánku. Pretože používam 64-bitový operačný systém Windows, použijem na to vyhlásenie.

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Krok 4: Teraz deklarujte subfunkciu, aby ste mohli začať písať kód.

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () End Sub 

Krok 5: Vyhláste šesť premenných A, B, C, D, X a Y na uloženie hodnôt.

kód:

 Verejná deklarácia PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y ako Celočíselný koniec Sub 

Krok 6: Priraďte náhodným hodnotám A, B, C a D.

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y ako celé číslo A = 10 B = 15 C = 20 D = 25 End Sub 

Krok 7: Uložte hodnotu A + B do X.

kód:

 Verejná deklarácia PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Vzorka1 () Dim A, B, C, D, X, Y ako celé číslo A = 10 B = 15 C = 20 D = 25 X = A + B End Sub 

Krok 8: Zobrazte hodnotu X.

kód:

 Verejná deklarácia PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Vzorka1 () Dim A, B, C, D, X, Y ako celé číslo A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub 

Krok 9: Teraz použite funkciu spánku na pauzu na päť sekúnd.

kód:

 Verejná deklarácia PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Vzorka1 () Dim A, B, C, D, X, Y ako celé číslo A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub 

Krok 10: Teraz do premennej Y uložte hodnotu X + C + D a zobrazte ju.

kód:

 Verejná deklarácia PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Vzorka1 () Dim A, B, C, D, X, Y ako celé číslo A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 Y = X + C + D MsgBox Y End Sub 

Krok 11: Spustite vyššie uvedený kód z poskytnutého spúšťacieho tlačidla alebo stlačením klávesu F5 a pozrite si výsledok. Vidíme, že prvá správa je zobrazená ako.

Krok 12: Stlačte OK a makro čaká päť sekúnd a zobrazí sa nasledujúci výsledok.

Funkcia spánku VBA - príklad č. 3

V tomto príklade chceme premenovať dva listy hárkov 1 a 2 na Anand a Aran. Čas medzi nimi by však mal byť päť sekúnd. V podstate chceme, aby sa makro po premenovaní hárka 1 a potom hárka 2 pozastavilo.

Ak chcete použiť funkciu spánku v programe Excel VBA, postupujte podľa nasledujúcich krokov:

Krok 1: Prejdite na kartu Vývojár a kliknutím na Visual Basic otvorte editor VB.

Krok 2: Po otvorení editora VB kliknite na kartu Vložiť a potom kliknutím na moduly vložte nový modul.

Krok 3: Teraz použite vyhlásenie a použite funkciu spánku. Pretože používam 64-bitový operačný systém Windows, použijem na to vyhlásenie.

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Krok 4: Teraz deklarujte subfunkciu, aby ste mohli začať písať kód.

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () End Sub 

Krok 5: Aktivujte list 1 a premenujte ho podľa nasledujúceho kódu:

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Pracovné hárky ("Sheet1"). Aktivácia pracovných hárkov ("Sheet1"). Názov = "Anand" MsgBox "List 1 premenovaný" End Sub 

Krok 6: Teraz použite funkciu spánku a využite oneskorenie na päť sekúnd.

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Pracovné hárky ("Sheet1"). Aktivácia pracovných hárkov ("Sheet1"). Názov = "Anand" MsgBox "Sheet 1 premenovaný" Sleep 5000 End Sub 

Krok 7: Teraz premenujte hárok 2 na nasledujúci kód.

kód:

 Verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Pracovné hárky ("Sheet1"). Aktivácia pracovných hárkov ("Sheet1"). List2 "). Aktivujte listy (" List2 "). Meno =" Aran "MsgBox" List 2 bol premenovaný na "End Sub" 

Krok 8: Teraz spustite kód a vidíme prvú správu.

Môžeme tiež skontrolovať, či je list 1 premenovaný.

Krok 9: Stlačte ok a počkajte päť sekúnd, kým sa ďalšia správa a druhý hárok majú premenovať.

Druhý hárok sa tiež premenuje.

Čo je potrebné pamätať

  • VBA Sleep je funkcia okna, takže ak ju chcete používať, musíme používať deklarácie.
  • Existujú rôzne vyhlásenia o vyhlásení pre rôzne typy operačných systémov.
  • Jednoduché použitie VBA Sleep zmrazí makro na stanovenú dobu.
  • Časový parameter daný funkcii spánku VBA je v milisekundách.

Odporúčané články

Toto je sprievodca funkciou spánku VBA. Tu diskutujeme o tom, ako používať Excel VBA funkciu spánku spolu s praktickými príkladmi a stiahnuteľnou šablónou Excel. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Funkcia VBA VLOOKUP
  2. DCOUNT Funkcia v Exceli
  3. VBA skopírovať
  4. Funkcia COMBIN v Exceli

Kategórie: