Excel VBA DoEvents függvény
A VBA DoEvents segítségével a kódot a háttérben futtathatjuk, és ezzel egyidejűleg lehetővé tesszük az excel és más alkalmazásszoftverekkel való együttműködést is. A DoEvents nem csak lehetővé teszi számunkra, hogy más szoftverekkel dolgozzunk, hanem a kód futtatását is megszakíthatjuk.
A DoEvents funkció átadja a vezérlést annak a számítógépnek az operációs rendszeréhez, amelyen dolgozunk.
Hogyan kell használni a DoEvents funkciót?
Nagy mennyiségű VBA kódra van szükség, ha a követelmény hatalmas. Ezekben az esetekben az Excel egy ideig lóg és leáll, sőt néha nem reagál.
Ezt a VBA DoEvents Excel sablont innen töltheti le - VBA DoEvents Excel sablontPéldául nézze meg az alábbi kódot.
Kód:
Sub DoEvents_Example1 () Dim i Long For i = 1 - 100000 tartomány ("A1"). Érték = i Next i End Sub
A fenti kód 1 és 100000 közötti sorszámokat fog beilleszteni. A feladat végrehajtása könnyen több mint egy percet vesz igénybe. A végrehajtás során az Excel jelentős ideig lóg a feladat elvégzéséhez. Ezalatt az Excel az üzenetet „Excel nem válaszol” néven mutatja.
Sőt, nem férünk hozzá a munkalaphoz, amelyen dolgozunk. Ez frusztráló dolog, akkor hogyan tegyük elérhetővé az excel munkalapot, amíg a kód fut a képernyő mögött.
Ez egy VBA DoEvents függvény hozzáadásával érhető el .
Kód:
Sub DoEvents_Example1 () Dim i Long For i = 1 - 100000 Range ("A1"). Érték = i DoEvents Next i End Sub
Abban a pillanatban, hogy hozzáadjuk a DoEvents függvényt a kódba, elérhetjük az Excel munkalapot.
Fentről láthatjuk, hogy a kód fut, de hozzáférhetünk a munkalaphoz.
A kódfuttatás megszakítása
Amikor a kód a képernyő mögött fut, felvehetünk sorokat, oszlopokat és törölhetjük őket, átnevezhetjük a lapot, és sok más dolgot is megtehetünk. Abban a pillanatban, hogy hozzáadjuk a DoEvents programot, gyors futásra készteti az vba kódot, és lehetővé teszi számunkra, hogy eldöntsük, hogy az említett feladat önmagában fut.
- A DoEvents funkció egyik veszélye, amikor munkalapokat vagy munkafüzeteket váltunk, az felülírja az aktív munkalap értékeket.
- Egy másik veszély az, hogy ha a cellába bármilyen értéket beírunk, a kód végrehajtása leáll, és nem is értesít minket.