Bevezetés az Excel VBA Call Sub alpontjába
A VBA-ban CALL funkciónk van, amelyet egy másik alkategóriában vagy al eljárásban tárolt értékek hívására használunk. Tegyük fel, hogy írtunk egy kódot valahol a munkafüzetbe, míg egy másik kód írásakor ugyanahhoz a kódhoz van szükségünk, amelyet korábban írtunk. Tehát ahelyett, hogy ugyanazt a kódot újra beírnánk, meghívhatjuk a teljes kódot vagy al eljárást a jelenlegi alkategóriába vagy al eljárásba. Ezzel elkerülhető, hogy újra és újra elvégezze a munkafüzet ugyanazon tevékenységét.
Hogyan hívhatjuk meg az Sub alkalmazást az Excel VBA alkalmazásban?
Az alábbiakban találhatók különféle példák az Sub hívására az Excel VBA alkalmazásban:
Itt letöltheti ezt a VBA Call Sub Excel sablont - VBA Call Sub Excel sablonExcel VBA hívás 1. alpélda
Először lássunk egyetlen példát, ahol felhívjuk a már megírt kód alkategóriát vagy eljárást. Ehhez modulra van szükségünk.
Lépjen a VBA ablakba, és a Beszúrás menüpont alatt kattintson a modulra, az alább látható módon.
Ezután kapunk egy üres oldalt vagy ablakot a modulból. Írja be a kód alkategóriáját, amelyet végrehajtunk, vagy bármely más névvel, az alább látható módon.
Kód:
Alhívás () Befejezés Alsó
Most használja az üzenet mező parancsát, és írja be az üzenet mezőbe bármilyen szöveget vagy szót. Itt az „ Első ” kifejezést használjuk, amint az alább látható.
Kód:
Sub Calling () MsgBox ("First") End Sub
Most fordítsa le a kódot, és futtassa a lejátszás gombra kattintva, amely a menüsor alatt található. Látni fogjuk egy üzenődobozt, amely tartalmazza az „ Első ” üzenetet, az alább látható módon.
Most, ugyanazon modul vége után, írjon újabb alkategóriát vagy eljárást bármilyen névre, az alább látható módon.
Kód:
Sub Érkezés () Sub Sub
Ebben az esetben ismét használja az MsgBox parancsot, és adjon neki üzenetet vagy szöveget a választása szerint. Itt adtuk „ Másodiknak ”, amint az alább látható.
Kód:
Sub Érkezés () MsgBox ("Második") End Sub
Most, ha futtatjuk a teljes kódot, akkor csak az utolsó alkategória kimenetet kapjuk, amely egy „ Második ” üzenetet tartalmazó üzenődoboz, az alább látható módon.
Itt jön a CALL funkció, amelyet mindkét üzenet egyenként történő meghívására használunk. Ezt az első alkategóriában fogják használni.
Erre a típusra hívja meg az első alkategóriát a vége elõtt, majd kövesse annak az alkategóriának a nevét, amelynek kódját fel akarjuk hívni. Az MsgBox a továbbiakban a Hívást, majd az Érkezés funkciót használja, amely az alábbiakban megadott kód alkategória neve.
Kód:
Alhívás () MsgBox ("Első") Hívás érkezése End Sub Sub Érkezés () MsgBox ("Second") End Sub
Most fordítsa le a teljes kódot az elejétől a végéig, és futtassa azt. Látni fogjuk az „Első” üzenettel elnevezett üzenetmezőt. Most kattintson az OK gombra a folytatáshoz. Miután ezt megtettük, megkapjuk a második üzenetdobozt, amely tartalmazza az alább látható „ Második ” üzenetet. És ha újra kattint az OK-ra, akkor kilép az eljárásból.
Mi lenne, ha megváltoztatnánk a Hívás funkció pozícióját a vége elõtt az elsõ alkategória után, az alább látható módon? Most hadd futtassuk újra a teljes kódot.
Kód:
Sub Calling () Call érkező MsgBox ("első") End Sub Sub érkezés () MsgBox ("Second") End Sub
Először megjelenik a második alfolyamatban tárolt üzenet, amely a „ Második ”, majd az „ Első ” üzenet, amikor az OK gombra kattintunk, az alább látható módon.
Tehát mind rajtunk múlik, melyik alprogramot vagy kategóriát szeretnénk először hívni.
Excel VBA hívás 2. alpélda
Lássunk egy másik példát, ahol a Hívás funkciót fogjuk felhasználni a különböző alkategóriák felhívására. Ehhez új modulra van szükségünk. Nyissa meg a modult a Beszúrás menüből. És ez alcsoportot ad bármilyen névben, az alább látható módon.
Kód:
Sub VBACall () Vége Sub
Definiáljon 3 változót, Num1, Num2 és Ans1 a DIM-ben, és rendelje azt a Long- kel. Használhatjuk az egész számot vagy a kettős felhasználót is, felhasználásától függően. A hosszú lehetővé teszi számunkra, hogy a szám bármilyen hosszát figyelembe vegyük.
Kód:
Sub VBACall () Dim Num1 Amíg Dim Num2 Amíg Dim Ans1 Am Long End Sub
Most adjon tetszőleges számot a Num1 és a Num2 számára . 100, illetve 50 adtunk nekik. A 100-as és az 50-es szám figyelembe vétele segít a kimenet gyors azonosításában.
Kód:
Sub VBACall () Dim Num1 Amíg Dim Num2 Amíg Dim Ans1 Am Long Num1 = 100 Num2 = 50 End Sub
Most a szorzási képlettel szorozzuk meg a Num1 és Num2 tárolókat, és tároljuk válaszukat az Ans1 változóban, az alább látható módon.
Kód:
Sub VBACall () Dim Num1 Amíg Dim Num2 Amíg Dim Ans1 Am Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 End Sub
A következő sorban a VBA objektumot fogjuk használni. Ehhez válassza ki a lapot a Munkalap paranccsal, és adjon meg egy tetszőleges cellát. A tartománysejtet B1-re választottuk. És végül nyomtassa ki az eredményt bármilyen névvel, például Eredmény vagy Válasz, amint az alább látható.
Kód:
Sub VBACall () Dim Num1 Amíg Dim Num2 Amíg Dim Ans1 Am Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 munkalapok (1) .Range ("B1") Value = "Answer" End Sub
Most adja meg azt a helyet, ahol a választ látni szeretnénk, a fentebb látható módon. Itt a C1 cellát választjuk kimeneti cellává, és itt tesszük az Ans1 utolsó változóját.
Kód:
Sub VBACall () Dim Num1 Amíg Dim Num2 Amíg Dim Ans1 Am Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 munkalapok (1) .Range ("B1") Value = "Answer" Munkalapok (1) .Range ("C1") Érték = Ans1 End Sub
Most futtassa a kódot. A szorzás eredményét látjuk a C1 cellában.
Egy másik alkategória írása ugyanazon kód alá a Vég után.
Kód:
Sub VBACall2 () End Sub
Ismételje meg a DIM-ben 3 Num3, Num4 és Ans2 változót , majd rendelje hozzá a Long értékhez .
Kód:
Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long End Sub
Adja meg a Num3 és Num4 értékeket ugyanolyan értékekkel, mint a 100 és az 50, és adja hozzá mind a számokat.
Kód:
Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 End Sub
Most használja a VBA Object-et a fentiekhez hasonló módon, és adja meg a tartomány cellát B2 válaszként és C2 értékként az Ans2 kiadásához .
Kód:
Sub VBACall2 () Dim Num3 Amíg Dim Num4 Amíg Dim Ans2 Amilyen Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Munkalapok (1) .Range ("B2") Value = "Answer" Munkalapok (1) .Range ("C2"). Érték = Ans2 End Sub
Mindkét eredmény egyenkénti felhívásához használja a Hívás funkciót, és az alább látható módon adja meg a második alkategória nevét.
Kód:
Sub VBACall () Dim Num1 Amíg Dim Num2 Amíg Dim Ans1 Am Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Munkalapok (1) .Range ("B1") Érték = "Válasz" Munkalapok (1) .Range Érték = Ans1 Hívás VBACall2 Vége Sub Sub VBACall2 () Dim Num3 Amíg Dim Num4 Amíg Dim Ans2 Amilyen Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 munkalapok (1) .Range ("B2") ) .Value = "Válasz" Munkalapok (1) .Range ("C2"). Érték = Ans2 End Sub
Most fordítsa le a teljes kódot, és futtassa. Az elsőket a C2 cellában fogjuk megkapni, a szorzás eredményét, a C3 cellában pedig az összeadás eredményét.
A helyes sorrend megismeréséhez használhatjuk az MsgBox parancsot, amint azt az 1. példában használtuk, és megnézhetjük, hogy melyik értékek melyik sorozatot hívják.
Az Excel VBA Call Sub előnyei
- A VBA Call Sub időt takarít meg, amikor ugyanazt a kódot újra és újra beírja.
- A VBA alprocedúra tárolójának ugyanabba az excelbe történő felhívása az Excel fájl méretét is csökkenti.
Dolgok, amikre emlékezni kell
- Használja az üzenet mezőt teszt céljából, hogy megnézze a több kód egymást követő futtatását.
- Fordítsa össze a nagyobb kódsorokat az F8 billentyű megnyomásával, hogy a hibarész azonosítható legyen.
- Mentse a fájlt makró engedélyezése Excel formátumban az írott kód megőrzéséhez.
- A CALL használatának befejezése az End elõtt futtatja az elsõ kódot, az elsõ Subprocedure után pedig a második kódot.
Ajánlott cikkek
Ez egy útmutató a VBA Call Sub-hoz. Itt tárgyaljuk, hogyan lehet Sub-t hívni az Excel VBA-ban, valamint a gyakorlati példákat és a letölthető Excel sablont. Megnézheti más javasolt cikkeinket -
- VBA Csináld, amíg a hurok
- SUBTOTAL képlet Excelben
- VBA Míg a hurok
- Az Excel függvény alsávja