Excel VBA DoEvents funkció

Ha hatalmas kódokat írunk, akkor mindig a VBA csapdájába esünk. Ha a kód nagy, a VBA saját időbe telik, hogy befejezze a futási és végrehajtási folyamatot. Ez egy perctől néhány percig tarthat. Ez az időkeret, amikor mindenki irritálódik. És ebben az időszakban nem tehetünk semmit. De ennek elkerülése érdekében a VBA-ban van egy DoEvents nevû funkció. A DoEvents segítségével futtathatjuk a kódot a háttérben, és egyszerre más dolgokat is készíthetünk. Nem csak más eszközökkel vagy szoftverekkel dolgozhatunk, hanem megszakíthatjuk a kódot, vagy megállhatunk a végrehajtási folyamat között.

Ha egyszer beírjuk a DoEvents kódot, akkor a VBA-n kívül a munka irányítását is ellenőrizzük. A DoEvents jó dolog, hogy nincs semmiféle szintaxisa az írásra. Közvetlenül elhelyezhetjük a Doevents-t, ahol át akarjuk venni a VBA irányítását, és elvégezzük a szükségleteinknek megfelelő feladatokat.

Hogyan lehet használni a DoEvents függvényt az Excel VBA alkalmazásban?

Az alábbiakban bemutatjuk a DoEvents függvény Excelben történő használatának különböző példáit, a VBA kód használatával.

Itt töltheti le a VBA DoEvents Excel sablont - VBA DoEvents Excel sablon

Excel VBA DoEvents - 1. példa

Bár a DoEvents végrehajtásához hatalmas adatkészletre van szükségünk, ahol láthatjuk, hogy a kód hogyan szakad meg. Tehát egy hurkot fogunk használni, ahol a számokat addig alkalmazzuk, amíg a kód kitöltődik. Ehhez kövesse az alábbi lépéseket:

1. lépés: Nyissa meg a modult a VBA-ban a Beszúrás menü lapon, az alább látható módon.

2. lépés: Írja be a VBA DoEvents alfolyamatát, vagy választhatunk bármilyen nevet a kód meghatározásához szükség szerint.

Kód:

 Sub VBA_DoEvents () Sub 

3. lépés: Most definiáljon változót bármilyen névben, hosszú adattípusokkal. Az adattípust hosszúnak tekintjük, mert az adagolás bármilyen hosszúságát megtesszük, ami nem lehetséges, ha Integer-et vesszük figyelembe.

Kód:

 Sub VBA_DoEvents () Dim A Am Long End Sub 

4. lépés: Most nyisson meg egy For-Next hurkot, ahol feltesszük a feltételeket.

Kód:

 Sub VBA_DoEvents () Ameddig csak hallatszik a következő alsó Sub 

5. lépés: Vegyük figyelembe a választott számok tartományát, amelyek a végrehajtás során láthatók. Itt az 1 - 2000 tartományt vesszük az A meghatározott változóban.

Kód:

 Sub VBA_DoEvents () A tompít A mindaddig, amíg A = 1 - 20000 Következő A vége Sub 

6. lépés: Miután meghatároztuk a számtartományt, kiválasztjuk a cellák tartományát, ahol látni fogjuk a fenti számváltozásokat. Tegyük fel, hogy a cellák tartománya A1-től A5-ig terjed. Ez lehet egyetlen cella is.

Kód:

 Sub VBA_DoEvents () A tompítja A mindaddig, amíg A = 1 - 20000 tartományba esik ("A1: A5"). Érték = Következő A Vége Sub 

7. lépés: Most futtassa a kódot a menüsor alatt található Play gombra kattintva.

Látni fogjuk, hogy a kód befejeződött az 1 és 20000 közötti szám kinyomtatásával, de nem tudtuk megállítani.

8. lépés: A kód teljes körű ellenőrzése érdekében alkalmazza a DoEvents-et a hurok körülményei szerint, az alább látható módon.

Kód:

 Sub VBA_DoEvents () A hallatszik, amíg A = 1 - 20000 tartományba esik ("A1: A5"). Value = A DoEvents Next A End Sub 

9. lépés: Most futtassa újra a kódot. És ebben az időben megpróbáljuk megállítani a kódot a stop gombra kattintással, észrevesszük, hogy a kód leáll a folyamatok között, mielőtt befejezi a 20000-as próbaverziót.

Excel VBA DoEvents - 2. példa

Van egy másik típusú eljárás a DoEvents megvalósításához. De ehhez is óriási kódra van szükségünk, amint az az 1. példában látható. Ehhez kövesse az alábbi lépéseket:

1. lépés: Írja be a VBA DoEvents alfolyamatát az alábbiak szerint.

Kód:

 VBA_DoEvents2 () alpont 

2. lépés: Nyissa meg közvetlenül a For-next hurkot egy változó meghatározása nélkül.

Kód:

 Sub VBA_DoEvents2 () A következő vég sub 

3. lépés: Válasszon egy számtartományt, amelyet futni fogunk. Legyen a tartomány 1 és 20000 között megegyezik az 1. példával.

Kód:

 Sub VBA_DoEvents2 () A = 1 és 20000 között Következő vége al 

4. lépés: Most tegyen közvetlenül minden munkát a kimenetre, mondjuk, hogy a kimenet az alább látható. Az értéktartomány +1 a tényleges értéknél.

Kód:

 Sub VBA_DoEvents2 () A = 1-től 20000-ig Kimenet = Kimenet + 1 Következő vége al 

5. lépés: Most válassza ki azt a tartományt, ahol látni akarjuk a kimenetet. Legyen a cella A1.

Kód:

 Sub VBA_DoEvents2 () A = 1-től 20000-ig Kimenet = Kimenet + 1 tartomány ("A1") Érték = Kimenet Következő vége Al 

6. lépés: És végül a DoEvents-et tesszük a For loop feltétel végére.

Kód:

 Sub VBA_DoEvents2 () A = 1-től 20000-ig Kimenet = Kimenet + 1 tartomány ("A1") Érték = Kimenet DoEvents Következő vége Sub 

7. lépés: Ezután futtassa a kódot az F5 billentyű megnyomásával. Látni fogjuk, hogy bármit megtehetünk, még akkor is, ha a kód fut. A demonstrációhoz kiválasztottam a B1 és C1 cellákat. Csak a 4348-nál értünk el számokat, ami jóval kevesebb, mint a mi általunk beállított határ.

8. lépés: Ha eltávolítjuk a DoEvents programot és futtatjuk a kódot, akkor semmit sem tehetünk, amíg a kód meg nem fejezi a folyamatot. Lássuk ezt is.

Kód:

 Sub VBA_DoEvents2 () A = 1-től 20000-ig Kimenet = Kimenet + 1 tartomány ("A1") Érték = Kimenet Következő vége Al 

9. lépés: Most futtassa újra a kódot. Mint láthatjuk, miközben megpróbáltunk kattintani a Stop-ra, a kód nem állt le. És a Play funkció továbbra is BE volt kapcsolva.

Az Excel VBA DoEvents előnyei és hátrányai

  • Bármely eszközre vagy fájlra a háttérben dolgozhatunk, amíg a VBA-kód párhuzamosan fut.
  • A DoEvents használata nem akadályozza meg a kívánt munka elvégzését, amikor a kód fut.
  • A munkalapot vagy a munkafüzetet felülírja, amikor átváltunk a különböző munkalapok vagy munkafüzetek között.
  • A kód leáll, amikor egy pillanatra megírjuk vagy megváltoztatjuk a cellát, és nem kapunk értesítést.

Dolgok, amikre emlékezni kell

  • Ha bármit megteszünk a DoEvents alkalmazása nélkül, akkor nagy a valószínűsége, hogy a kód megsemmisíti a rendszert és a fájlt. És hogy vagy folytatjuk a fájlokat, miután a kód teljesen futott, vagy összecsukjuk a fájlt több kattintással.
  • Láthatjuk a folyamat változását, miközben a másik munkát egyszerre végezzük.
  • Miután kitöltöttük a kódot, mentsük el a fájlt makro-engedélyezett excel formátumban, hogy elkerüljük a kódot.
  • Próbáljon meg alkalmazni a kódot egy hatalmas és nagy kódolási készletben, ott meglátjuk a tényleges megvalósítást és felhasználást.

Ajánlott cikkek

Ez egy útmutató a VBA DoEvents-hez. Itt tárgyaljuk, hogyan lehet használni a DoEvents függvényt az Excel alkalmazásban a VBA kód használatával, valamint a gyakorlati példákat és a letölthető Excel sablont. Megnézheti más javasolt cikkeinket -

  1. Hogyan lehet használni a StrConv-t az Excel VBA-ban?
  2. Számok konvertálása szöveggé Excelben (példák)
  3. VBA ByRef függvény (példák Excel sablonnal)
  4. Excel SUMIFS dátumokkal Excel sablon

Kategória: