Introduktion till Excel VBA Call Sub

I VBA har vi en funktion som CALL, som används för att anropa värden lagrade i en annan underkategori eller sub-procedur. Anta att vi har skrivit en kod någonstans i en arbetsbok, nu när vi skriver en annan kod behöver vi samma kod som har skrivits tidigare. Så istället för att skriva samma kod igen, kan vi kalla den kompletta koden eller subproceduren till den aktuella underkategorin eller subproceduren. På detta sätt kan du undvika att göra samma aktivitet i arbetsboken om och om igen.

Hur man ringer sub i Excel VBA?

Nedan är de olika exemplen att kalla Sub i Excel VBA:

Du kan ladda ner denna Excel-mall för VBA-samtal här - VBA-samtal för Excel-mall

Excel VBA-samtalssub - exempel # 1

Låt oss först se ett enda exempel där vi RINGAR redan underkategori eller procedur för skriven kod. För detta behöver vi en modul.

Gå till VBA-fönstret och klicka på Modul under Infoga menyalternativ som visas nedan.

Efter det får vi en tom sida eller fönster med modulen. Nu skriver du en underkategori av kod som vi utför eller i något annat namn som visas nedan.

Koda:

 Sub Calling () Avsluta Sub 

Använd nu ett kommando i meddelanderutan och skriv vilken text eller ord du vill se i meddelanderutan. Här använder vi " Först " som visas nedan.

Koda:

 Sub Calling () MsgBox ("First") Avsluta Sub 

Sätt nu i koden och kör den genom att klicka på knappen Spela under menyfältet. Vi kommer att se en meddelanderuta med meddelandet " Först " som visas nedan.

Nu efter slutet i samma modul, skriv en annan underkategori eller procedur i vilket namn som visas nedan.

Koda:

 Sub Arriving () Slut Sub 

I det igen använda kommandot MsgBox och ge det meddelande eller text enligt ditt val. Här har vi gett det " Second " som visas nedan.

Koda:

 Sub Arriving () MsgBox ("Second") End Sub 

Om vi ​​nu kör den fullständiga koden får vi utmatningen från endast den sista underkategorin som är en meddelanderuta som innehåller meddelandet " Second " som visas nedan.

Här kommer funktionen CALL, som vi kommer att använda för att ringa båda meddelandena en efter en. Detta kommer att användas i den första underkategorin.

För den här typen Ring i den första underkategorin före slut, följt av namnet på den underkategori vars kod vi vill ringa. Hädanefter MsgBox använder vi Ring följt av Ankomst, som är underkategorinamn på koden nedan.

Koda:

 Sub Calling () MsgBox ("First") Call Arriving End Sub Sub Arriving () MsgBox ("Second") End Sub 

Sätt nu samman hela koden från början till slut och kör den. Vi kommer att se meddelanderutan med namnet “Först”. Klicka nu på Ok för att gå vidare. När vi gör det kommer vi att få den andra meddelanderutan som innehåller meddelandet “ Second ” som visas nedan. Och om du klickar på Ok igen, kommer den att lämna proceduren.

Vad händer om vi ändrar positionen för samtalsfunktionen från före slutet till efter den första underkategorin som visas nedan? Låt nu köra den fullständiga koden igen.

Koda:

 Sub Calling () Call Arriving MsgBox ("First") Slut Sub Sub Arriving () MsgBox ("Second") End Sub 

Det dyker upp meddelandet som är lagrat i den andra delproceduren först, som är " Second " följt av meddelandet " First " när vi klickar på Ok som visas nedan.

Så det är helt upp till oss, vilken Sub-procedur eller kategori vi vill ringa först.

Excel VBA-samtalssub - exempel # 2

Låt oss se ett annat exempel där vi använder en samtalsfunktion för att kalla annan underkategori. För detta behöver vi en ny modul. Öppna en modul från Infoga-menyn. Och det ger en underkategori i valfritt namn som visas nedan.

Koda:

 Sub VBACall () Slut Sub 

Definiera 3 variabler Num1, Num2 och Ans1 i DIM och tilldela sedan med Long . Vi kan också använda heltal eller dubbel, beroende på användningen. Lång kommer att tillåta oss att överväga valfri längd.

Koda:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 Som Long End Sub 

Ge nu Num1 och Num2 valfritt nummer. Vi har gett dem 100 respektive 50 . Att ta hänsyn till 100 och 50 kommer att hjälpa oss att identifiera produktionen snabbt.

Koda:

 Sub VBACall () Dim Num1 Som Long Dim Num2 Som Long Dim Ans1 Som Long Num1 = 100 Num2 = 50 End Sub 

Använd nu multiplikationsformel för att multiplicera sifferlagren i Num1 och Num2 och lagra deras svar i variabeln Ans1 som visas nedan.

Koda:

 Sub VBACall () Dim Num1 Som Long Dim Num2 Som Long Dim Ans1 Som Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 End Sub 

I nästa kodrad kommer vi att använda VBA-objektet. Välj detta ark med kommandot Arbetsblad och ge det ett intervall för valfri cell. Vi har valt intervallcellen som B1. Och slutligen skriva ut resultatet med valfritt namn som Resultat eller Svar som visas nedan.

Koda:

 Sub VBACall () Dim Num1 Som Long Dim Num2 Som Long Dim Ans1 Som Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Worksheets (1) .Range ("B1"). Value = "Answer" End Sub 

Ge den nu platsen där vi vill se svaret på samma sätt som visas ovan. Här väljer vi cell C1 som utgångscell och lägger den sista variabeln Ans1 här.

Koda:

 Sub VBACall () Dim Num1 Som Long Dim Num2 Som Long Dim Ans1 Som Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Worksheets (1) .Range ("B1"). Value = "Answer" Worksheets (1) .Range ("C1"). Value = Ans1 End Sub 

Kör nu koden. Vi kommer att se ett multiplikationsresultat vid cell C1.

Att skriva en annan underkategori under samma kod efter slutet.

Koda:

 Sub VBACall2 () Slut Sub 

Definiera igen 3 variabler Num3, Num4 och Ans2 i DIM och tilldela sedan med Long.

Koda:

 Sub VBACall2 () Dim Num3 Så Lång Dim Num4 Så Lång Dim Ans2 Som Lång slut Sub 

Ge Num3 och Num4 samma värden som 100 och 50 och lägg till båda siffrorna.

Koda:

 Sub VBACall2 () Dim Num3 Som Lång Dim Num4 Som Lång Dim Ans2 Som Lång Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Slut Sub 

Använd nu VBA-objekt på ett liknande sätt som använts ovan och ge sedan intervallcellen som B2 för svar och C2 för utdata från Ans2 .

Koda:

 Sub VBACall2 () Dim Num3 Som Long Dim Num4 Som Long Dim Ans2 Som Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Worksheets (1) .Range ("B2"). Value = "Answer" Worksheets (1) .Range ("C2"). Value = Ans2 End Sub 

För att ringa båda resultaten en efter en, använd samtalsfunktionen, den ger namnet på den andra underkategorin som visas nedan.

Koda:

 Sub VBACall () Dim Num1 Som Long Dim Num2 Som Long Dim Ans1 Som Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Worksheets (1) .Range ("B1"). Value = "Answer" Worksheets (1) .Range ("C1"). Värde = Ans1 Samtal VBACall2 Slut Sub Sub VBACall2 () Dim Num3 Som Lång Dim Num4 Som Lång Dim Ans2 Som Lång Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Arbetsblad (1) .Range ("B2" ) .Value = "Answer" -ark (1) .Range ("C2"). Value = Ans2 End Sub 

Sätt nu samman hela koden och kör. Vi kommer att vara de första vid cell C2, vi fick resultatet av multiplikationen och vid cell C3, ett resultat av tillägget.

För att veta rätt ordning kan vi använda MsgBox-kommandot som används i Exempel 1 och se vilka värden som kallas vid vilken sekvens.

Fördelar med Excel VBA Call Sub

  • VBA Call Sub sparar tid på att skriva samma kod om och om igen.
  • Att ringa VBA-subprocedurlagret i samma excel minskar också storleken på Excel-filen.

Saker att komma ihåg

  • Använd meddelanderutan för teständamål för att se den sekvensiella körningen av flera koder.
  • Kompilera de större kodraderna genom att trycka på F8-tangenten så att feldelen kan identifieras.
  • Spara filen i makro Aktivera Excel-format för att behålla den skrivna koden.
  • Att använda CALL före slut kör den första koden först och efter den första delproceduren körs den andra koden först.

Rekommenderade artiklar

Detta är en guide till VBA Call Sub. Här diskuterar vi hur man ringer Sub i Excel VBA tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. VBA gör tills slingan
  2. SUBTOTAL Formel i Excel
  3. VBA medan Loop
  4. Substring Excel-funktion

Kategori: