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 sablonExcel 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 -
- Hogyan lehet használni a StrConv-t az Excel VBA-ban?
- Számok konvertálása szöveggé Excelben (példák)
- VBA ByRef függvény (példák Excel sablonnal)
- Excel SUMIFS dátumokkal Excel sablon