VBA gaidīšanas un miega funkcijas - pauzes / aizkaves VBA kods

Šī apmācība parādīs, kā apturēt / aizkavēt kodu, izmantojot VBA gaidīšanas un miega režīma funkcijas.

Kad mēs izveidojam lielas VBA programmas, kas veic daudz aprēķinu, vai varbūt pat izsaucam ārēju programmu, lai palaistu, mēs varam pieprasīt, lai mūsu VBA kods tiktu pārtraukts darboties uz noteiktu laiku, kamēr notiek ārējais process. Lai to panāktu, VBA ir pieejamas dažas metodes.

Lietojumprogrammas izmantošana. Gaidīšanas metode

Ja pirms nākamās darbības veikšanas mums kādu laiku jāpārtrauc makro darbība vai līdz ir sasniegts noteikts laiks, mēs varam izmantot Pieteikums. Pagaidiet metodi. Tas varētu būt noderīgi, piemēram, ja mēs esam automatizējuši vietnes pieteikšanās procesu un mums jāgaida dažas sekundes, līdz lapa tiek ielādēta, pirms tiek turpināta mūsu makro darbība.

Pagaidiet 1 sekundi

Iekļaujot šo rindiņu zemāk savā makro, tā darbība tiks apturēta uz aptuveni 1 sekundi:

1 Application.Wait (Tagad + TimeValue ("0:00:01"))

Pagaidi līdz

Dažos gadījumos jums būs jāgaida līdz noteiktam laikam. Ar šo rindu zemāk makro netiks rādīts pirms pulksten 9:00.

1 Pieteikums. Pagaidiet "09:00:00"

Lūdzu, ņemiet vērā, ka Pieteikums. Pagaidiet nepieņem kavēšanos, kas ir mazāka par 1 sekundi.

VBA programmēšana | Kodu ģenerators strādā jūsu labā!

Miega metodes izmantošana

Ja jums ir nepieciešams precīzāks makro apturēšanas veids, varat izmantot miega metodi.

Miega režīms ir Windows API funkcija, tas ir, tā nav daļa no VBA. Tam var piekļūt, izmantojot īpašu deklarācijas paziņojumu.

Ja izmantojat Microsoft Office 64 bitu versiju, varat ievietot šādu paziņojumu jaunā modulī vai tā sākumā (nevis tieši apakšprogrammā), kurā vēlaties izmantot miega funkciju:

1 Publiski deklarēt PtrSafe Sub Sleep Lib "kernel32" (ByVal Millisekundes kā LongPtr)

Izmantojot 32 bitu versiju, izmantojiet šo rindu:

1 Publiska deklarācija Sub Sleep Lib "kernel32" (ByVal Millisekundes kā LongPtr)

Pēc miega funkcijas deklarēšanas jums tai ir piekļuve šādās apakšprogrammās:

1 Gulēt 10 000

Ar šo līniju virs jūsu makro tiks apturēta 10 000 milisekundes, t.i., 10 sekundes.

Cilpas izmantošana kopā ar notikumiem

Gaidīšanas un miega režīma metožu izmantošanas lielais trūkums ir tas, ka, gaidot makro turpināšanu, lietotājs programmā Excel neko nevar izdarīt. Lietotājs varētu domāt, ka programma Excel ir pārstājusi reaģēt un kamēr lietotājs to var izmantot Ctl+pārtraukums lai pārtrauktu makro, tas neizdodas sākumā pārtraukt makro.

Lai pārvarētu šo problēmu, mēs varam izmantot cilpu ar metodi, ko sauc par DoEvents.

1234567 Publisks apakštests ()Dim un tik ilgiJa i = 1 līdz 20000Diapazons (“A1”). Vērtība = iDoEventsTālāk iBeigu apakš

Tagad, kamēr programmā Excel darbojas iepriekš minētais makro, lietotājs var turpināt mijiedarboties ar Excel - piemēram, mēs varam mainīt cilnes vai formatēt šūnas - būtībā makro turpina darboties, bet Excel ekrāns nav iesaldēts. Mēs varētu izmantot līdzīgu cilpu, lai programmā Excel izveidotu taimera funkciju un iekļautu DoEvents metode, lai atsaldētu ekrānu, kamēr darbojas taimeris.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave