Dogodki VBA - Kako in kdaj uporabiti funkcijo DoEvents?

Funkcija DoEvents programa Excel VBA

S pomočjo VBA DoEvents lahko naredimo, da se koda izvaja v ozadju, hkrati pa nam omogoča tudi delo z excelom in drugo aplikacijsko programsko opremo. DoEvents nam ne omogoča samo dela z drugo programsko opremo, temveč lahko tudi prekinemo izvajanje kode.

Funkcija DoEvents prenaša nadzor na operacijski sistem računalnika, na katerem delamo.

Kako uporabljati funkcijo DoEvents?

Ko je zahteva velika, je potrebna velika količina kode VBA. V teh primerih excel nekaj časa visi in se ustavi, včasih pa postane neodziven.

Na primer, poglejte spodnjo kodo.

Koda:

Sub DoEvents_Example1 () Dim i as long for i = 1 To 100000 Range ("A1"). Value = i Next i End Sub

Zgornja koda bo vstavila serijske številke od 1 do 100000. Za nalogo bo trajalo več kot minuto. Med izvajanjem excel precej časa visi za dokončanje naloge. V tem času Excel prikaže sporočilo kot »Excel se ne odziva«.

Poleg tega ne moremo dostopati do delovnega lista, na katerem delamo. To je frustrirajoče, kako potem narediti Excelov delovni list na voljo za delo, medtem ko koda teče za zaslonom.

To lahko dosežete z dodajanjem funkcije VBA DoEvents .

Koda:

Sub DoEvents_Example1 () Dim i as long for i = 1 To 100000 Range ("A1"). Value = i DoEvents Next i End Sub

V trenutku, ko v kodo dodamo funkcijo DoEvents, imamo dostop do Excelovega delovnega lista.

Iz zgoraj navedenega lahko vidimo, da se koda izvaja, vendar imamo dostop do delovnega lista.

Prekinite izvajanje kode

Ko se koda izvaja za zaslonom, lahko dodamo vrstice, stolpce in izbrišemo iste, lahko preimenujemo list in lahko storimo tudi marsikaj drugega. V trenutku, ko dodamo DoEvents, se koda VBA hitro zažene in nam pusti, da se omenjena naloga izvaja sama zase.

  • Ena od nevarnosti funkcije DoEvents je, ko zamenjamo delovne liste ali delovne zvezke in prepiše vrednosti aktivnih listov.
  • Druga nevarnost je, če v celico vnesemo katero koli vrednost, se izvajanje kode ustavi in ​​nas niti ne obvesti.
Opomba : Kljub zgoraj navedenim nevarnostim DoEvents je še vedno priročna funkcija. DoEvents lahko uporabimo kot del postopka za odpravljanje napak, ko skušamo odpraviti napake kode, ki smo jo napisali.

Zanimive Članki...