Funkcija Excel VBA DoEvents

Kad pišemo ogromne kodove, uvijek upadamo u zamku VBA. Kad je kôd velik, VBA uzima svoje vrijeme da završi postupak pokretanja i izvršavanja. Što može potrajati od minute do nekoliko minuta. Ovo je vremenski okvir kada se svi nerviraju. I ne možemo ništa drugo učiniti u ovom vremenskom razdoblju. Ali da to izbjegnemo, imamo funkciju u VBA koja se zove DoEvents. Pomoću DoEvents-a možemo kôd izvoditi u pozadini, a istovremeno možemo raditi i druge vrste stvari. Ne možemo raditi samo na drugom alatu ili softveru, već također možemo prekinuti kod ili zaustaviti između procesa izvršenja.

Jednom kada unesemo DoEvents u kod, tada ćemo osim VBA imati kontrolu nad radom koji želimo obavljati. Dobra stvar kod DoEvents-a je što nema nikakvu sintaksu za pisanje. Izravno možemo smjestiti Doevents tamo gdje želimo preuzeti kontrolu nad VBA i obavljati zadatke prema našim potrebama.

Kako se koristi DoEvents funkcija u Excelu VBA?

Ispod su sljedeći primjeri za korištenje DoEvents funkcije u excelu pomoću VBA koda.

Možete preuzeti ovaj VBA DoEvents Excel predložak ovdje - VBA DoEvents Excel predložak

Excel VBA DoEvents - Primjer # 1

Iako je potrebno izvršiti DoEvents potreban nam je ogroman skup podataka gdje možemo vidjeti kako se kôd prekida. Dakle, koristit ćemo petlju, u koju će se brojevi primjenjivati ​​dok se kod ne popuni. Za to slijedite dolje navedene korake:

Korak 1: Otvorite modul u VBA na kartici izbornika Umetanje kao što je prikazano u nastavku.

Korak 2: Napišite podprocedura VBA DoEvents ili možemo odabrati bilo koje ime da bismo definirali kod prema našim potrebama.

Kodirati:

 Sub VBA_DoEvents () Kraj Sub 

Korak 3: Sada definirajte varijablu u bilo kojem imenu s vrstama podataka Long. Svrha razmatranja vrste podataka kao Long je jer ćemo uzimati bilo koju duljinu podataka koju želimo što nije moguće ako uzmemo u obzir Integer.

Kodirati:

 Sub VBA_DoEvents () Dim A kao dugi kraj Sub 

Korak 4: Sada otvorite petlju For-Next u koju ćemo staviti uvjete.

Kodirati:

 Sub VBA_DoEvents () Dim A kao dugačak za sljedeći i krajnji Sub 

Korak 5: Razmotrite raspon izbora po vašem izboru koji se može primijeniti. Ovdje uzimamo raspon 1 do 2000 u definiranoj varijabli A.

Kodirati:

 Sub VBA_DoEvents () Dim A kao dugačak za A = 1 do 20000 Sljedeći A Kraj Sub 

Korak 6: Jednom kada definiramo raspon brojeva, mi ćemo odabrati raspon ćelija u kojima ćemo vidjeti promjene u brojevima koje smo odabrali gore. Recimo da je raspon ćelija od A1 do A5. Ovo bi mogla biti i jedna ćelija.

Kodirati:

 Sub VBA_DoEvents () Dim A kao dugačak za raspon od A = 1 do 20000 ("A1: A5") Vrijednost = A Sljedeći A Kraj Pod 

Korak 7: Sada pokrenite kôd klikom na gumb Play koji se nalazi ispod trake izbornika.

Vidjet ćemo, kôd je završen ispisom brojeva od 1 do 20000, ali nismo ga uspjeli zaustaviti.

Korak 8: Da biste dobili potpunu kontrolu nad kodom, primijenite DoEvents nakon uvjeta petlje, kao što je prikazano u nastavku.

Kodirati:

 Sub VBA_DoEvents () Dim A kao dugačak za raspon od A = 1 do 20000 ("A1: A5"). Vrijednost = A DoEvents Next A End Sub 

9. korak: Sada ponovo pokrenite kod. A u ovom trenutku pokušavamo zaustaviti kod klikom na gumb za zaustavljanje, primijetit ćemo da će se kôd zaustaviti između procesa prije završetka suđenja 20000.

Excel VBA DoEvents - primjer br. 2

Postoji još jedna vrsta procesa za implementaciju DoEvents. Ali i za to će nam trebati ogroman kod kao što se vidi u primjeru-1. Za to slijedite dolje navedene korake:

Korak 1: Napišite podprocedura VBA DoEvents kao što je prikazano u nastavku.

Kodirati:

 Sub VBA_DoEvents2 () Kraj Sub 

2. korak: Izravno otvorite petlju For-next bez definiranja varijable.

Kodirati:

 Sub VBA_DoEvents2 () Za sljedeći kraj Sub 

Korak 3: Odaberite raspon broja koji ćemo vidjeti kako se prikazuje. Neka je raspon od 1 do 20000 jednak primjeru-1.

Kodirati:

 Sub VBA_DoEvents2 () Za A = 1 do 20000 Sljedeći kraj Sub 

Korak 4: Sada izravno stavite bilo koji posao za izlaz, recimo da je izlaz prikazan dolje. A raspon vrijednosti bit će +1 stvarne vrijednosti.

Kodirati:

 Sub VBA_DoEvents2 () Za A = 1 do 20000 Izlaz = Izlaz + 1 Sljedeći kraj Sub 

Korak 5: Sada odaberite raspon u kojem želimo vidjeti izlaz. Neka ćelija bude A1.

Kodirati:

 Sub VBA_DoEvents2 () Za A = 1 do 20000 Izlaz = Izlaz + 1 područje ("A1") Vrijednost = Izlaz Sljedeći kraj Pod 

Korak 6: I konačno ćemo DoEvents staviti na kraj For petlje.

Kodirati:

 Sub VBA_DoEvents2 () Za A = 1 do 20000 Izlaz = Izlaz + 1 raspon ("A1") Vrijednost = Izlaz DoEvents Sljedeći kraj Sub 

Korak 7: A zatim pokrenite kôd pritiskom na tipku F5. Vidjet ćemo, možemo učiniti bilo što, čak i kad se kod pokrene. Za demonstraciju sam odabrao ćelije B1 i C1. Brojke koje su dostigle samo 4348, što je znatno manje od granice koju smo postavili.

Korak 8: Ako uklonimo DoEvents i pokrenemo kôd, nećemo biti u mogućnosti učiniti sve dok kod ne dovrši svoj postupak. Da vidimo i to.

Kodirati:

 Sub VBA_DoEvents2 () Za A = 1 do 20000 Izlaz = Izlaz + 1 područje ("A1") Vrijednost = Izlaz Sljedeći kraj Pod 

9. korak: Sada ponovo pokrenite kôd. Kao što vidimo, dok smo pokušavali kliknuti na Stop, kod se nije zaustavio. A značajka Play i dalje je bila UKLJUČENA.

Za i protiv Excel VBA DoEvents

  • Možemo raditi na bilo kojem alatu ili datoteci u pozadini dok se VBA kôd pokreće paralelno.
  • Korištenje DoEvents ne sprečava nas da radimo što želimo kad se kôd pokreće.
  • Prepisuje radni list ili radnu knjižicu kada prelazimo između različitih radnih listova ili radne bilježnice.
  • Kod se zaustavlja kad na trenutak napišemo ili promijenimo ćeliju i ne primimo obavijest.

Stvari koje treba zapamtiti

  • Ako učinimo bilo što bez primjene DoEvents-a, tada postoji velika mogućnost da kôd sustav i datoteku zamrzne. I da ćemo ili nastaviti datoteke nakon što se kôd potpuno pokrene ili ćemo ga srušiti na više klikova.
  • Promjenu u procesu možemo vidjeti dok istovremeno radimo na drugom poslu.
  • Nakon što dovršimo kôd, spremite datoteku u formatu excel koji je omogućen za makro kako biste izbjegli gubitak koda.
  • Pokušajte primijeniti kod u velikom i velikom skupu kodiranja, tamo ćemo vidjeti stvarnu implementaciju i upotrebu.

Preporučeni članci

Ovo je vodič za VBA DoEvents. Ovdje smo raspravljali o tome kako koristiti DoEvents funkciju u Excelu pomoću VBA koda zajedno s praktičnim primjerima i download-ovim Excel predloška. Možete i pregledati naše druge predložene članke -

  1. Kako koristiti StrConv u Excelu VBA?
  2. Pretvori brojeve u tekst u Excelu (primjeri)
  3. VBA ByRef funkcija (primjeri s Excelovim predloškom)
  4. Excel SUMIFS s datumima | Predložak Excela

Kategorija: