Vad är Call Sub i VBA?
Vi kan utföra alla delprocedurer för samma modul i en enda subrutin och processen för att utföra dem i en enda VBA-subrutin som kallas "Call Sub".
I vissa fall kan vi behöva skriva en enorm mängd kod till och att skriva dem i ett enda makro skapar många problem när vi felsöker koden. I början tenderar alla att göra detta enbart på grund av bristande kunskap om "Call Sub" -metoden.
Det är inte bra praxis att hålla alla koder i ett enda underförfarande, vi måste dela upp dem i flera underförfaranden för att förenkla koden.
Hur man ringer till subrutin i Excel VBA?
Att köra excel-makrot från en procedur till en annan gör livet enklare för enbart på grund av att du sparar mycket tid medan du kör också ett tag felsöker koden i händelse av fel.
Du kan ladda ner denna VBA Call Sub Excel-mall här - VBA Call Sub Excel-mall
Koda:
Sub Code_1 () Range ("A1"). Value = "Hello" End Sub Sub Code_2 () Range ("A1"). Interior.Color = rgbAquamarine End Sub
I bilden ovan har vi två delprocedurer. Den första är "Code_1" och den andra är "Code_2".
I den första underkoden för VBA-samtal har jag precis skrivit en kod för att infoga ett värde i cellen A1 som “Hej”. I den andra delproceduren har jag skrivit koden för att ändra den inre färgen på cellen A1 till “rgbAquamarine”.
Nu kommer jag att köra den första koden, dvs. ”Code_1”.
Nu kommer jag att köra den andra koden, dvs. ”Code_2”.
Här har jag kört kodtiderna.
Genom att använda VBA “call Sub” kan vi endast utföra underproceduren i ett enda makro. Vi behöver bara lägga till ordet ”Ring” följt av ett makronamn.
Titta på den grafiska bilden nedan.
Jag har nämnt koden som ”Call Code_2” endast i den första underproceduren. Nu för att förstå ska vi köra koden rad för rad. Tryck på F8-tangenten så markeras makronamnet.
Tryck på F8-tangenten en gång till för att hoppa till nästa rad.
Den gulfärgade linjen visar att den markerade koden håller på att köras om vi trycker på F8-tangenten en gång till. Tryck på F8-tangenten nu.
Som vi kan se har det infogat ordet “Hej” i cellen A1. Nu har raden "Call Code_2" markerats.
"Call Code_2" har till uppgift att ändra den inre färgen på cellen A1 och ordet "Call Code_2" kommer att exekvera denna kod endast från den aktuella underproceduren.
Men tryck på F8-tangenten för att se magin.
Det har hoppat till det nämnda delprocedurnamnet. Tryck en gång till på F8-tangenten.
Nu är den faktiska uppgiftsraden markerad, för att utföra detta, tryck på F8-tangenten en gång till.
Så här kan vi utföra många delprocedurer från en underprocedur genom att kalla underproceduren med deras namn med ordet "Ring".
Notera:
- Vi kan utföra makrot för en annan delprocedur utan att använda ordet ”Ring” utan bara genom att nämna själva makronamnet.
- Detta är inte den bästa praxis, för om makroundproceduren innehåller parentes som du vill utföra är "Call" -ordet obligatoriskt.
- Enligt min personliga åsikt använder du alltid ordet ”Ring” eftersom det bara är ett ord på 4 bokstäver som gör det möjligt för andra att förstå koden korrekt.