VBA Događaji | Kako i kada koristiti funkciju DoEvents?

Excel VBA DoEvents funkcija

Uz pomoć VBA DoEvents možemo omogućiti rad koda u pozadini, a istovremeno nam omogućuje rad s excelom i ostalim aplikacijskim softverom. DoEvents ne samo da nam omogućuje rad s drugim softverom, već možemo i prekinuti pokretanje koda.

Funkcija DoEvents prenosi kontrolu na operativni sustav računala na kojem radimo.

Kako koristiti funkciju DoEvents?

Potrebna je velika količina VBA koda kada je zahtjev ogroman. U tim slučajevima excel neko vrijeme visi i zaustavlja se, a ponekad i ne reagira.

Ovaj VBA DoEvents Excel predložak možete preuzeti ovdje - VBA DoEvents Excel Predložak

Za primjer pogledajte donji kod.

Kodirati:

 Sub DoEvents_Example1 () Dim i čeznuti za raspon i = 1 do 100000 ("A1"). Vrijednost = i Sljedeće i Kraj Sub 

Gornji kod umetnut će serijske brojeve od 1 do 100000. Izvršenje zadatka lako će potrajati više od minute. Tijekom izvršavanja, Excel visi dosta vremena kako bi dovršio zadatak. Za to vrijeme excel prikazuje poruku kao "Excel ne reagira".

Štoviše, ne možemo pristupiti radnom listu na kojem radimo. Ovo je frustrirajuća stvar, kako onda učiniti da excel radni list bude dostupan za rad dok kôd radi iza zaslona.

To se može postići dodavanjem funkcije VBA DoEvents .

Kodirati:

 Sub DoEvents_Example1 () Dim i čeznuti za i = 1 do 100000 Raspon ("A1"). Value = i DoEvents Next i End Sub 

Onog trenutka kada u kôd dodamo funkciju Događaji, možemo pristupiti Excelovom radnom listu.

Odozgo možemo vidjeti da se kôd izvodi, ali možemo pristupiti radnom listu.

Prekinite pokrenut kod

Kada se kôd prikazuje iza zaslona, ​​možemo mu dodavati retke, stupce i brisati ga, možemo preimenovati list, a možemo i mnoge druge stvari. Onog trenutka kada dodamo DoEvents, vba kod se brzo pokreće i omogućuje nam pad da se spomenuti zadatak izvodi sam za sebe.

  • Jedna od opasnosti funkcije DoEvents je kada promijenimo radne listove ili radne knjige, a ona prepiše aktivne vrijednosti lista.
  • Druga je opasnost, ako unesemo bilo koju vrijednost u ćeliju, izvršavanje koda se zaustavlja, a ona nas ni ne obavještava.
Napomena : Unatoč gore navedenim opasnostima DoEventa, to je još uvijek korisna funkcija. DoEvents možemo koristiti kao dio postupka ispravljanja pogrešaka kada pokušavamo ispraviti pogreške koda koji smo napisali.