Excel VBA funkcija DoEvents

Ko pišemo ogromne kode, vedno pademo v past VBA. Ko je koda velika, si VBA vzame čas za dokončanje postopka izvajanja in izvajanja. Kar lahko traja od minute do nekaj minut. To je časovni okvir, ko se vsi razdražijo. In v tem času ne moremo storiti ničesar drugega. A da bi se temu izognili, imamo funkcijo v VBA, imenovano DoEvents. S pomočjo DoEvents lahko kodo zaženemo v ozadju in hkrati lahko počnemo tudi druge stvari. Ne moremo delati samo na drugem orodju ali programski opremi, ampak lahko tudi prekinemo kodo ali se ustavimo med postopkom izvršitve.

Ko v kodo vnesemo DoEvents, potem bomo poleg VBA imeli tudi nadzor nad delom, ki ga želimo opravljati. Dobra stvar pri DoEvents je, da nima nobene skladnje za pisanje. Doevents lahko neposredno postavimo tam, kjer želimo prevzeti nadzor nad VBA in opraviti naloge, kot je potrebno.

Kako uporabljati DoEvents funkcijo v Excelu VBA?

Spodaj so različni primeri uporabe funkcije DoEvents v excelu z uporabo kode VBA.

Predlogo VBA DoEvents Excel lahko prenesete tukaj - VBA Predloga DoEvents Excel

Excel VBA DoEvents - primer # 1

Čeprav za izvedbo DoEvents potrebujemo ogromen nabor podatkov, kjer lahko vidimo, kako se koda prekinja. Torej bomo uporabili zanko, kjer se bodo številke uporabljale, dokler koda ni izpolnjena. Za to sledite spodnjim korakom:

1. korak: Odprite modul v VBA na jezičku Vstavi meni, kot je prikazano spodaj.

2. korak: Napišite podprocesu VBA DoEvents ali pa lahko izberemo katero koli ime, da določimo kodo glede na naše potrebe.

Koda:

 Sub VBA_DoEvents () Konec Sub 

3. korak: Zdaj določite spremenljivko v katerem koli imenu s podatkovnimi tipi Long. Namen tega, da se vrsta podatkov obravnava kot Dolga, je zato, ker bomo vzeli poljubno dolžino podatkov, kar pa ni mogoče, če upoštevamo Integer.

Koda:

 Sub VBA_DoEvents () Dim A kot dolgi konec Sub 

4. korak: Odprite zanko For-Next, v katero bomo postavili pogoje.

Koda:

 Sub VBA_DoEvents () Dim A kot dolga za naslednji konec konca Sub 

5. korak: razmislite o številnih izbirah, ki jih je mogoče videti pri izvajanju. Tu zavzemamo območje od 1 do 2000 v definirani spremenljivki A.

Koda:

 Sub VBA_DoEvents () Dim A as long for A = 1 do 20000 Next A End Sub 

6. korak: Ko določimo obseg števil, bomo izbrali obseg celic, kjer bomo videli spremembe številk, ki smo jih izbrali zgoraj. Recimo, da je razpon celic od A1 do A5. To je lahko tudi ena celica.

Koda:

 Pod VBA_DoEvents () Dim A, dokler je v območju od A = 1 do 20000 ("A1: A5") Vrednost = A Naslednji konec Pod 

7. korak: Zdaj zaženite kodo s klikom na gumb Play, ki se nahaja pod menijsko vrstico.

Videli bomo, koda se je zaključila s tiskanjem številk od 1 do 20000, vendar je nismo mogli ustaviti.

8. korak: Če želite popolnoma nadzorovati kodo, uporabite DoEvents po pogojih zanke, kot je prikazano spodaj.

Koda:

 Pod VBA_DoEvents () Dim A, dokler je v območju od A = 1 do 20000 ("A1: A5"). Vrednost = A DoEvents Naslednji konec 

9. korak: Zdaj zaženite kodo. In v tem trenutku poskušamo zaustaviti kodo s klikom gumba za zaustavitev, opazili bomo, da se bo koda ustavila med postopki, preden konča preizkus 20000.

Excel VBA DoEvents - primer # 2

Obstaja še ena vrsta postopka za izvajanje DoEvents. Toda tudi za to bomo potrebovali ogromno kodo, kot je razvidno iz primera 1. Za to sledite spodnjim korakom:

1. korak: Napišite podprocesu VBA DoEvents, kot je prikazano spodaj.

Koda:

 Sub VBA_DoEvents2 () Konec Sub 

2. korak: Neposredno odprite zanko For-next, ne da bi definirali spremenljivko.

Koda:

 Sub VBA_DoEvents2 () Za naslednji konec Sub 

3. korak: Izberite obseg številk, ki ga bomo videli. Razpon naj bo od 1 do 20000 enak primeru 1.

Koda:

 Sub VBA_DoEvents2 () Za A = 1 do 20000 Naslednji konec Sub 

4. korak: Zdaj neposredno postavite katero koli delo za izhod, recimo, da je rezultat tak, kot je prikazano spodaj. Razpon vrednosti bo +1 dejanske vrednosti.

Koda:

 Sub VBA_DoEvents2 () Za A = 1 do 20000 Izhod = Izhod + 1 Naslednji konec Pod 

Korak 5: Zdaj izberite območje, v katerem želimo videti izhod. Naj bo celica A1.

Koda:

 Pod VBA_DoEvents2 () Za A = 1 do 20000 Izhod = Izhod + 1 območje ("A1") Vrednost = Izhod Naslednji konec Pod 

6. korak: In končno bomo DoEvents postavili na koncu pogoja zanke.

Koda:

 Pod VBA_DoEvents2 () Za A = 1 do 20000 Izhod = Izhod + 1 območje ("A1") Vrednost = Izhod DoEvents Naslednji konec Pod 

7. korak: Nato zaženite kodo s pritiskom na tipko F5. Videli bomo, lahko storimo karkoli, tudi ko se koda izvaja. Za demonstracijo sem izbral celici B1 in C1. Številke, dosežene samo pri 4348, kar je precej manj od omejitve, ki smo jo postavili.

8. korak: Če odstranimo DoEvents in zaženemo kodo, ne bomo mogli storiti ničesar, dokler koda ne dokonča svojega postopka. Poglejmo tudi to.

Koda:

 Pod VBA_DoEvents2 () Za A = 1 do 20000 Izhod = Izhod + 1 območje ("A1") Vrednost = Izhod Naslednji konec Pod 

9. korak: Zdaj zaženite kodo še enkrat. Kot smo lahko videli, ko smo poskušali klikniti na Stop, se koda ni ustavila. In funkcija Play je bila še vedno vklopljena.

Prednosti in slabosti Excela VBA DoEvents

  • Delamo lahko s katerim koli orodjem ali datoteko v ozadju, medtem ko bo koda VBA tekla vzporedno.
  • Uporaba DoEvents nas ne ustavi pri delu, ki ga želimo, ko se koda izvaja.
  • Prepiše delovni list ali delovni zvezek, ko preklapljamo med različnimi delovnimi listi ali delovnim zvezkom.
  • Koda se ustavi, ko za trenutek napišemo ali spremenimo celico in ne bomo obveščeni.

Stvari, ki jih je treba zapomniti

  • Če storimo karkoli brez uporabe DoEvents, obstaja velika možnost, da koda sistem in datoteko zamrzne. In da bomo bodisi obnovili datoteke, ko bo koda popolnoma zagnana, ali pa datoteko zrušimo z več kliki.
  • Spremembo procesa lahko opazimo, ko hkrati opravljamo drugo delo.
  • Ko dokončamo kodo, shranite datoteko v formatu excel z omogočanjem makro, da preprečite izgubo kode.
  • Poskusite uporabiti kodo v ogromnem in velikem naboru kodiranja, tam bomo videli dejansko izvedbo in uporabo.

Priporočeni članki

To je vodnik za VBA DoEvents. Tukaj smo razpravljali o uporabi funkcije DoEvents v Excelu z uporabo kode VBA skupaj s praktičnimi primeri in naložljivo predlogo Excela. Ogledate si lahko tudi druge naše predlagane članke -

  1. Kako uporabljati StrConv v Excelu VBA?
  2. Pretvarjanje številk v besedilo v Excelu (primeri)
  3. Funkcija VBA ByRef (primeri s predlogo Excel)
  4. Excel SUMIFS z datumi | Predloga Excela

Kategorija: