Az „Azonnali ablak” hasznos eszköz lehet az Excel VBA -val való munka során.
Az Azonnali ablak lehetővé teszi, hogy gyorsan elvégezze a következőket:
- Információk beszerzése az Excel fájlokról (például a munkafüzetben lévő lapok száma vagy a munkafüzet neve)
- Get Debug. Nyomtasson információkat gyorsan
- Futtasson egy kódsort másodpercek alatt
- Makró futtatása (vagy függvény hívása)
- Információk lekérése a változókról (vagy érték vagy változók beállítása)
Bár nem kell azonnali ablakot használni a VBA használatához Excelben, a megfelelő használat ismerete sokkal hatékonyabbá teheti Önt.
Ebben az oktatóanyagban mindent leírok, amit a közvetlen ablakról és annak legjobb használatáról tudni kell (példákkal magyarázva).
Kezdjük el!
Mi az azonnali ablak az Excel VBA -ban?
Az Azonnali ablak a VB Szerkesztő része, amellyel gyors dolgokat végezhet.
Például, ha van egy munkafüzete néhány rejtett munkalappal, és gyorsan szeretné tudni az összes munkalap számát, ezt néhány másodperc alatt megteheti az Azonnali ablakkal.
Az Azonnali ablak sokkal többet tesz (amint ezt az oktatóanyag későbbi részében látni fogja). De először is gondoljunk csak az azonnali ablakra, mint eszközre, amely felgyorsítja a munkát az Excel VBA -ban.
Hol található az azonnali ablak?
Az Excel VB-szerkesztő megnyitásakor előfordulhat, hogy az azonnali ablak már megjelenik a VB szerkesztő részeként. És ha még nem látja, könnyen megjelenítheti.
Az alábbiakban bemutatjuk a lépéseket a VB szerkesztő megnyitásához és az Azonnali ablak láthatóvá tételéhez:
- Kattintson az Excel szalag "Fejlesztő" lapjára (ha nem látja a fejlesztő lapot, kattintson ide, hogy megtudja, hogyan szerezheti meg)
- A kódcsoportban kattintson a „Visual Basic” elemre. Ez megnyitja a VB szerkesztőt
- A VB szerkesztőben kattintson a menü „Nézet” opciójára
- Kattintson az Azonnali ablak lehetőségre. Ezzel az azonnali ablak megjelenik a VB szerkesztőben.
Ha jobban érzi magát a gyorsbillentyűkkel, az alábbiakban felsoroljuk a fenti lépések gyorsítását:
- A VB szerkesztő megnyitásához - ALT + F11 (ez akkor is működik, ha nincs szalagon a Fejlesztő lap)
- Az azonnali ablak megjelenítéséhez - Control + G (ezt használja, a VB szerkesztő nyitva van)
Példák az Azonnali ablak használatára az Excel VBA -ban
Most, hogy tudja, hol találja meg az azonnali ablakot, nézzünk néhány fantasztikus példát, amelyekkel használhatja az Excel VBA -val való munka során.
Információk a fájlokról/munkafüzetekről
Az „Azonnali ablak” egy olyan hely, ahol kérdéseket tehet fel a munkafüzetekkel kapcsolatban, és azonnal megadja a választ.
Tegyük fel például, hogy van munkafüzete, és szeretné tudni, hány lap van a munkafüzetben, írja be az alábbi kódot a közvetlen ablakba, és nyomja meg az Enter billentyűt.
? ActiveWorkbook.Sheets.Count
Ez azonnal megmutatja az aktív munkafüzet összes lapjának számát.
Ez akkor lehet hasznos, ha olyan munkafüzete van, amely sok lapot tartalmaz, és nem tudja kézzel számolni (vagy nem akarja), vagy ha van olyan munkafüzete, ahol rejtett lapok vannak, és szeretné tudni az összes számol.
Az ? (kérdőjel) a lekérdezés előtt kell használni, hogy a VBA megérthesse, hogy kérdést tesz fel. Ha nem használja ezt a kérdőjelet, az azonnali ablak nem adja meg a részleteket/választ.Ez egy nagyon egyszerű példa, ahol az Azonnali ablak néhány információt ad és időt takarít meg.
Az alábbiakban még néhány példa látható:
Az aktív munkafüzet nevének lekérése
? ActiveWorkbook.Name
Az aktív munkalap nevének lekéréséhez
? Tevékenységlap. Név
A munkafüzet elérési útjának (a mentési cím) lekérése
? ActiveWorkbook.Path
Tehát ha szüksége van valamire egy objektummal kapcsolatban (például munkafüzet, lapok, diagramok, alakzatok, tartomány stb.), Akkor az azonnali ablak segítségével gyorsan megkaphatja ezeket az információkat.
Hibakeresés. Nyomtatási információk
Az Excel VBA -ban a Debug.Print a változó értékének azonnali megjelenítésére szolgál a közvetlen ablakban.
Például az alábbi kód azonnal megjeleníti a „Jó reggelt” üzenetet a közvetlen ablakban.
Sub DisplayMessage () Debug.Print "Good Morning" End Sub
A Debug.Print sor használatával a kódban gyorsan elérhet bizonyos adatokat a közvetlen ablakban, vagy hibakeresést végezhet.
Például, ha meg szeretné kapni a munkafüzet összes lapjának nevét, használhatja az alábbi kódot:
Sub GetSheetNames () Minden egyes ActiveWorkbook.Sheets Debug programban. Sh. Név nyomtatása Következő sh End Sub
A fenti kód végigmegy az aktív munkafüzet minden lapján, és megadja a nevet a közvetlen ablakban.
Hibakeresés. A nyomtatás hasznos módszer a kód hibakeresésére. Például, ha ciklus fut, és szeretné látni, hányszor futott a ciklus, akkor egyszerűen elhelyezhet egy hibakeresési nyomtatási sort, amely egyszerűen mutatja a növekvő számokat minden ciklus futásakor.
Ha használ Hibakeresés. Nyomtatás A kód hibakereséséhez ne felejtse el eltávolítani, ha végzett.
Makró (vagy függvény) futtatása
Míg a makró futtatásához többféle lehetőség is van az Excelben, az egyik gyors módszer az azonnali ablak használata.
A makró futtatásához mindössze annyit kell tennie, hogy beírja a makró nevét a közvetlen ablakba, és nyomja meg az Enter billentyűt (a kurzornak a makrónév végén kell lennie, hogy ez működjön).
Az alábbiakban egy példa látható, ahol amint beírja a makró nevét a közvetlen ablakba, lefuttatja a kódot (ahol a kód a „Jó reggelt” üzenetet jeleníti meg a közvetlen ablakban).
Ez akkor lehet hasznos, ha rendelkezik kóddal, és szeretné ellenőrizni, hogy a várakozásoknak megfelelően működik -e. Lehet egy vagy több hibakeresés. Nyomtasson sorokat a kódba, és futtassa a makrót a közvetlen ablakból.
Azonnal megjeleníti az értékeket a közvetlen ablakban, és ellenőrizheti, hogy minden rendben működik -e vagy sem.
Az azonnali ablak segítségével egyéni funkciókat is végrehajthat.
Például az alábbi példában egy függvény jön létre annak ellenőrzésére, hogy egy szám páros vagy páratlan. Ezt a függvényt a közvetlen ablakból futtathatja, ha beírja a függvényt a szükséges argumentummal. Ebben az esetben a kérdőjelet kell használnia, amikor azt kéri, hogy a függvényben tárolt értéket adja vissza.
Kódsor (vagy több kódsor) végrehajtása
Azonnali ablakkal egy kódsor (vagy több kódsor) is futtatható.
A legjobb az egészben az, hogy egyszerűen megnyithatja a közvetlen ablakot, futtathatja a kódot és bezárhatja (ellentétben a makróval, amelyet be kell helyeznie egy modul ablakába, majd végre kell hajtania).
Ez hasznos lehet, ha gyorsan szeretné feltárni a munkafüzet összes lapját.
Az alábbiakban bemutatjuk a kódot, amelyet elhelyezhet a közvetlen ablakban a munkafüzet összes lapjának megjelenítéséhez. Helyezze a kurzort a sor végére és amint megnyomja az enter billentyűt, az összes lapot feltárja.
A munkafüzet minden egyes lapjára. Táblázatok: Lap. Látható = Igaz: Következő lap
Vegye figyelembe, hogy bár ez egyetlen kódsornak tűnik, három részből áll.
Mindegyik részt egy: (kettőspont) választja el, amely úgy működik, mint egy sor. Ez lehetővé teszi, hogy a Következő ciklus segítségével a közvetlen ablakban végigmenjen az egyes lapokon, és a látható tulajdonságot IGAZ -ra változtassa (amely minden rejtett lapot megjelenít).
Változó értékek beszerzése
A komplex VBA kódok létrehozásának megkezdésekor változókra kell támaszkodnia a munka elvégzéséhez.
A változó olyan értéket tartalmaz, amely változhat a kód futása közben. Azonnali ablak segítségével ellenőrizheti ezeket a változó értékeket.
Az alábbiakban egy egyszerű kód található, amely az első 10 pozitív egész szám összegét adja meg, és az eredményt a közvetlen ablakban mutatja.
Sub AddFirstTenNumbers () Dim Var mint Integer Dim i mint Integer Dim k Mint Integer For i = 1 to 10 k = k + i Next i Debug.Print i, k End Sub
Amint futtatja ezt a kódot, az alábbi eredményt fogja látni a közvetlen ablakban. Ez azonnal jelzi, hogy a kód jól működik, és a várt eredményt adja.
Abban az esetben, ha nem adja meg a várt eredményt, hibakeresést végezhet.
Sokan használnak üzenetmezőt a kód hibakeresése közben. Bár jól működik, kissé tolakodónak találom, mivel az Excel munkafüzetbe visz, és megjelenik egy üzenetdoboz. Másrészt az azonnali ablak használata a hibakereséshez sokkal simább, és magában a Visual Basic szerkesztőben marad.
Megjegyzés: Ha összetett kóddal dolgozik, és több változóval rendelkezik, amelyeket nyomon kell követnie, akkor jobb, ha figyelőablakot használ. A figyelőablak lehetővé teszi egy változó hozzáadását, majd láthatja, hogyan változik ez a változó valós időben (vagy ahogy átlépi a kódot).Állítson be változó értéket hibakereséskor
Ez az Azonnali ablak kissé fejlett használata, de ha használja, óriási időmegtakarítás lehet a kód hibakeresésekor.
Az azonnali ablakkal beállíthatja a változó értékét, amíg a kódot hibakeresési módban futtatja (ahol töréspontot állít be, hogy a kód ne teljesüljön teljes mértékben, hanem egy adott sorig).
Például, ha van egy ciklusa, amely 10 -szer fut, és szeretné ellenőrizni, hogy mi történik, amikor a ciklus 8. alkalommal fut, akkor nem kell hétszer átlépnie a cikluson, hogy elérje a nyolcadik iterációt. Egyszerűen hozzáadhat egy töréspontot a ciklus elé, és megváltoztathatja a ciklusváltozót 8 -ra. Most, amikor futtatja a kódot, megmutatja, mi történik, amikor a ciklusok 8. alkalommal futnak.
Ez sokkal hasznosabbá válik, ha összetett kódokat ír, és konkrét ciklusokat szeretne hibakeresni.
Tegyük fel, hogy rendelkezik az alábbi kóddal:
Sub UnhideSheets () For i = 1 To Workheets. Count Debug. Print Sheets (i). Név Következő i End Sub
A fenti kód egyszerűen felsorolja a munkafüzet összes lapjának lapnevét a közvetlen ablakban.
Ha nem az összes lap nevét szeretné felsorolni, hanem csak a 10. lap utáni lapokat, akkor a ciklus második sorában elhelyezhet egy töréspontot (hogy a sor után semmi ne kerüljön végrehajtásra), majd módosítsa a "i" változó 11 -ig.
A változó nevének azonnali ablakban történő megváltoztatásához írja be a következő sort:
i = 11
Ez biztosítja, hogy a ciklus első 10 alkalommal figyelmen kívül hagyja, és a változó értéke 11 -re van állítva.
Azonnali ablak dokkolása/kicsomagolása
Azonnali ablakot dokkolhat a VB szerkesztőhöz - ez azt jelenti, hogy az egy helyen marad a VB szerkesztőben, és mozog és méretezik vele.
És dokkolva is eltávolíthatja, ami azt jelenti, hogy független a VB-szerkesztőtől, és önálló ablakként mozgatható.
Az alábbiakban bemutatjuk, hogyan módosíthatja az azonnali ablak dokkolási beállításait:
- Kattintson az Eszközök lehetőségre a VB szerkesztő menüjében
- Kattintson a "Beállítások" gombra
- A Beállítások párbeszédpanelen kattintson az utolsó fülre - Dokkolás
- Jelölje be az Azonnali ablak opciót, hogy dokkolható legyen, és törölje a jelölést, hogy megszüntesse a dokkolást.
- Kattintson az OK gombra
Alternatív megoldásként, ha az azonnali ablak látható, akkor kattintson a jobb egérgombbal, és módosítsa annak dokkolható tulajdonságát.
A dokkolható azt jelenti, hogy az azonnali ablak a meglévő ablak részévé válik, ha bizonyos helyeken, például az ablak bal oldalán vagy alján helyezkedik el. Ez lehetővé teszi a dokkolt ablakok mozgását és méretét.
Az azonnali ablak nem jelenik meg - Íme néhány módszer annak megszerzésére
Ennek több oka is lehet.
A leggyakoribb ok, amiért nem lát azonnali ablakot, az az, hogy nem tette láthatóvá. Előfordulhat, hogy alapértelmezés szerint nem látható, és annak megjelenítéséhez el kell mennie a menü Nézet opciójába, és kattintson az Azonnali ablak lehetőségre. Ez biztosítja, hogy látható legyen a VB szerkesztőben.
A Control + G billentyűzettel is megjelenítheti az azonnali ablakot. Használja ezt a billentyűparancsot a VB szerkesztőben.
A másik ok, amiért előfordulhat, hogy nem látja az azonnali ablakot, az az, hogy minimalizálva van, annyira bezárt, hogy nem látja (ahogy itt közöljük). Csak végezzen gyors szkennelést, és ellenőrizze, hogy nem lát -e valahol egy kis kék/piros négyzetet. Vigye a kurzort fölé, és megjelenik egy lehetőség az átméretezésre.
Ha egyáltalán nem látja a közvetlen ablakot, itt van valami, ami sok ember számára bevált (ez gyakran előfordul a képernyőfelbontás változása miatt):
- Nyissa meg a VB szerkesztőt
- Nyomja meg a Ctrl-G billentyűkombinációt, hogy a közvetlen ablakra fókuszáljon (vagy kattintson a Nézet lehetőségre a menüben, majd kattintson az azonnali ablakra)
- Tartsa lenyomva az ALT billentyűt, majd nyomja meg a szóköz billentyűt. Ez megjeleníti az azonnali ablak legördülő lehetőségeit.
- Nyomja meg az M gombot (az áthelyezéshez)
- A nyílbillentyűkkel mozgassa az ablakot
- Miután rájött, hol van, növelje azt
Ezt itt kaptam egy fórumról, és azt is észrevettem, hogy ugyanazt javasolják megoldásként, ha a VBA azonnali ablak nem jelenik meg.
Egy másik dolog, amit kipróbálhat, az azonnali ablak kibonthatóvá tétele (menjen az Eszközök -> Beállítások -> Dokkolás menüpontba, és törölje a jelet az azonnali ablak opcióból). Ez néhány embernél bevált.
A következő cikkek is tetszhetnek:
- Excel személyes makró munkafüzet | Makrók mentése és használata az összes munkafüzetben
- Excel VBA hurkok: Következő, csináld amíg, addig, mindegyikhez (példákkal)
- Munkalapok használata Excel VBA segítségével
- Felhasználó által definiált függvény (UDF) létrehozása az Excel VBA -ban