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žakExcel 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 -
- Kako koristiti StrConv u Excelu VBA?
- Pretvori brojeve u tekst u Excelu (primjeri)
- VBA ByRef funkcija (primjeri s Excelovim predloškom)
- Excel SUMIFS s datumima | Predložak Excela