Funktsioon Excel VBA DoEvents

Hiigelsuurte koodide kirjutamisel satume alati VBA lõksu. Kui kood on suur, võtab VBA jooksva ja käivitusprotsessi lõpetamiseks oma aja. See võib võtta aega minutist mitme minutini. See on ajaraam, mil kõik ärrituvad. Ja me ei saa selle aja jooksul midagi muud teha. Kuid selle vältimiseks on meil VBA-s funktsioon nimega DoEvents. DoEventsi abiga saame koodi taustal käitada ja samal ajal teha ka muid asju. Me ei saa töötada ainult muu tööriista või tarkvaraga, vaid võime koodi ka katkestada või täitmisprotsessi vahel peatada.

Kui sisestame DoEventsi koodi, siis on meil lisaks VBA-le ka kontroll töö üle, mida tahame teha. DoEventsi puhul on hea see, et sellel pole mingit süntaksit kirjutada. Saame Doeventsi otse paigutada sinna, kus tahame VBA üle kontrolli saada ja ülesandeid vastavalt oma vajadustele täita.

Kuidas kasutada funktsiooni DoEvents rakenduses Excel VBA?

Allpool on toodud erinevad näited funktsiooni DoEvents kasutamise kohta Excelis, kasutades VBA-koodi.

Selle VBA DoEvents Exceli malli saate alla laadida siit - VBA DoEvents Exceli mall

Excel VBA DoEvents - näide nr 1

Kuigi DoEventsi käivitamiseks on vaja tohutut komplekti andmeid, kus näeme, kuidas kood katkeb. Kasutame silmust, kus numbreid rakendatakse kuni koodi valmimiseni. Selleks toimige järgmiselt.

1. samm: avage moodul VBA-s menüü vahekaardil Lisa, nagu allpool näidatud.

2. samm: kirjutage VBA DoEventsi alamprotsess või võime valida suvalise nime, et määratleda kood vastavalt vajadusele.

Kood:

 Alam VBA_DoEvents () lõpp alam 

3. samm: määratlege nüüd muutuja suvalises nimes andmetüüpidega Pikk. Andmetüübi pikkuseks pidamise eesmärk on see, et võtame soovitud andmeid, mis ei ole täisarvu korral võimalik.

Kood:

 Alam VBA_DoEvents () Hämardatakse nii pika otsaga alammenüüna 

4. samm: avage nüüd For-Next silmus, kuhu me tingimused seame.

Kood:

 Alam VBA_DoEvents () timmib nii kaua, kui järgmine lõpp on 

5. samm: kaaluge valitud arvu vahemikku, mida võib näha rakendamisel. Võtame vahemiku 1 kuni 2000 määratletud muutuja A korral.

Kood:

 Alam VBA_DoEvents () timmib nii kaua, kui A = 1 kuni 20000 Järgmine A lõpp Sub 

6. samm: kui oleme numbrite vahemiku määratlenud, valime lahtrite vahemiku, kus näeme ülal valitud numbrimuutusi. Oletame, et lahtrite vahemik on A1 kuni A5. See võib olla ka üksik lahter.

Kood:

 Alam VBA_DoEvents () hämardatakse nii kaua, kui vahemik A = 1 kuni 20000 ("A1: A5"). Väärtus = järgmine A lõpp 

7. samm: käivitage nüüd kood, klõpsates menüüriba all asuvat nuppu Esita.

Näeme, kood on lõpule jõudnud, printides numbrid 1 kuni 20000, kuid me ei suutnud seda peatada.

8. samm: Koodi täieliku kontrolli saamiseks rakendage DoEvents pärast silmuse tingimusi, nagu allpool näidatud.

Kood:

 Alam VBA_DoEvents () hämardatakse nii kaua, kui vahemik A = 1 kuni 20000 ("A1: A5"). Value = A DoEvents Next A End Sub 

9. samm: käivitage nüüd uuesti kood. Ja sel ajal proovime koodi peatada, klõpsates stopp-nuppu, märkame, et kood peatub protsesside vahel enne 20000-aastase prooviversiooni lõpetamist.

Excel VBA DoEvents - näide # 2

DoEventsi rakendamiseks on veel üks protsess. Kuid ka selleks on vaja tohutut koodi, nagu näites 1. Selleks toimige järgmiselt.

1. samm: kirjutage VBA DoEvents alamprotseduur, nagu allpool näidatud.

Kood:

 Alam VBA_DoEvents2 () lõpp alam 

2. samm: avage otse-eelne silmus muutujat määratlemata.

Kood:

 Alam VBA_DoEvents2 () järgmise lõigu alammenüü jaoks 

3. samm: valige numbrivahemik, mida näeme jooksmas. Olgu vahemik 1 kuni 20000 sama, mis näites 1.

Kood:

 Alam VBA_DoEvents2 () A = 1 kuni 20000 järgmise lõpu alammenüü jaoks 

4. samm: pange kohe väljundiks kõik tööd, ütleme, et väljund on järgmine. Väärtuste vahemik on tegeliku väärtuse +1.

Kood:

 Alam VBA_DoEvents2 () A = 1 kuni 20000 väljund = väljund + 1 järgmine lõpp alam 

5. samm: valige nüüd vahemik, kus tahame väljundit näha. Olgu lahter A1.

Kood:

 Alam VBA_DoEvents2 () A = 1 kuni 20000 väljund = väljund + 1 vahemik ("A1") väärtus = väljund järgmine lõpp alam 

6. samm: ja lõpuks paneme DoEventsi For silmuse tingimuse lõppu.

Kood:

 Alam VBA_DoEvents2 () A = 1 kuni 20000 väljund = väljund + 1 vahemik ("A1") väärtus = väljund DoEvents Järgmine lõpp Alam 

7. samm: ja siis käivitage kood, vajutades klahvi F5. Me näeme, et me saame teha ükskõik mida, isegi kui kood töötab. Demonstratsiooniks valisin lahtrid B1 ja C1. Numbrid jõudsid ainult 4348 juurde, mis on üsna vähem kui meie seatud piir.

8. samm: kui eemaldame DoEventsi ja käivitame koodi, ei saa me midagi teha enne, kui kood on lõpule viidud. Vaatame seda ka.

Kood:

 Alam VBA_DoEvents2 () A = 1 kuni 20000 väljund = väljund + 1 vahemik ("A1") väärtus = väljund järgmine lõpp alam 

9. samm: käivitage kood uuesti. Nagu näeme, püüdsime klõpsata nuppu Stop, kuid kood ei peatunud. Ja esitusfunktsioon oli endiselt sisse lülitatud.

Excel VBA DoEvents plussid ja miinused

  • Saame töötada mis tahes tööriista või faili taustal, kuni VBA-kood töötab paralleelselt.
  • DoEventsi kasutamine ei takista meid soovitud töö tegemisel, kui kood töötab.
  • Kui me vahetame erinevaid töölehti või töövihikuid, kirjutab see üle töölehe või töövihiku.
  • Kood peatub, kui kirjutame korraks lahtrit või muudame seda ning meid ei teavitata.

Asjad, mida meeles pidada

  • Kui teeme midagi DoEventsi rakendamata, on suur võimalus, et kood muudab süsteemi ja faili külmutatuks. Ja et me jätkame failide taastamist, kui kood on täielikult käivitatud, või krahhime faili mitmel klõpsamisel.
  • Me näeme muutust protsessis, töötades samal ajal samal tööl.
  • Kui kood on lõpule viidud, salvestage fail makrofunktsioonidega exceli vormingus, et mitte kaotada koodi.
  • Proovige koodi rakendada tohutul ja suurel hulgal kodeeringus, seal näeme tegelikku rakendamist ja kasutamist.

Soovitatavad artiklid

See on VBA DoEventsi juhend. Siin arutatakse, kuidas kasutada Excelis funktsiooni DoEvents, kasutades VBA-koodi koos praktiliste näidete ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. Kuidas kasutada StrConvit Exceli VBA-s?
  2. Numbrite teisendamine tekstiks Excelis (näited)
  3. Funktsioon VBA ByRef (näited Exceli malliga)
  4. Exceli SUMIFID koos kuupäevadega | Exceli mall

Kategooria: