Introduktion til Excel VBA-opkaldssub

I VBA har vi en funktion som CALL, der bruges til at kalde de værdier, der er gemt i en anden underkategori eller sub-procedure. Antag, at vi har skrevet en kode et eller andet sted i en projektmappe, og mens vi skriver en anden kode, har vi brug for den samme kode, der er skrevet tidligere. Så i stedet for at skrive den samme kode igen, kan vi kalde den komplette kode eller sub-procedure til den aktuelle underkategori eller sub-procedure. På denne måde kan du undgå at udføre den samme aktivitet i projektmappen igen og igen.

Hvordan ringer man til sub i Excel VBA?

Nedenfor er de forskellige eksempler, der skal kaldes Sub i Excel VBA:

Du kan downloade denne VBA-opkalds-sub-skabelon her - VBA-opkalds-sub-skabelon

Excel VBA-opkaldssub - eksempel # 1

Lad os først se et enkelt eksempel, hvor vi CALL allerede underkategori eller procedure for skrevet kode. Til dette har vi brug for et modul.

Gå til VBA-vinduet, og klik på Modul som vist nedenfor under Indsæt menuindstilling.

Derefter får vi en tom side eller et vindue med modul. Nu skriver du en underkategori af kode, som vi udfører, eller i et hvilket som helst andet navn som vist nedenfor.

Kode:

 Sub Calling () Afslut Sub 

Brug nu en kommando i meddelelsesfeltet, og skriv enhver tekst eller ord, du vil se i meddelelsesfeltet. Her bruger vi “ Første ” som vist nedenfor.

Kode:

 Sub Calling () MsgBox ("First") End Sub 

Kompilér nu koden og kør den ved at klikke på knappen Afspil, der er under menulinjen. Vi vil se en meddelelsesboks, der indeholder meddelelsen " Første " som vist nedenfor.

Nu efter afslutningen i det samme modul, skriv en anden underkategori eller procedure i ethvert navn som vist nedenfor.

Kode:

 Sub Ankomst () End Sub 

I den igen skal du bruge kommandoen MsgBox og give den besked eller tekst som pr. Valg. Her har vi givet det ” Andet ” som vist nedenfor.

Kode:

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

Hvis vi nu kører den komplette kode, får vi output fra kun den sidste underkategori, som er en meddelelsesboks, der indeholder meddelelsen " Andet " som vist nedenfor.

Her kommer funktionen CALL, som vi vil bruge til at kalde begge meddelelser en efter en. Dette vil blive brugt i den første underkategori.

For denne type Kald i den første underkategori før Slut, efterfulgt af navnet på den underkategori, hvis kode vi vil kalde. Herefter bruger MsgBox vi bruger Opkald efterfulgt af Ankomst, som er underkategorienavn på koden skrevet nedenfor.

Kode:

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

Kompiler nu den komplette kode fra start til slut og kør den. Vi ser meddelelsesfeltet navngivet med meddelelsen "Første". Klik nu på Ok for at gå videre. Når vi gør det, får vi den anden meddelelsesboks, der indeholder meddelelsen " Andet " som vist nedenfor. Og hvis du klikker på Ok igen, afslutter den proceduren.

Hvad hvis vi ændrer placeringen af ​​opkaldsfunktionen fra før slutning til efter den første underkategori som vist nedenfor? Lad nu køre den komplette kode igen.

Kode:

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

Det vises den meddelelse, der er gemt i den anden underprocedure, der først er " Andet " efterfulgt af meddelelsen " Første ", når vi klikker på Ok som vist nedenfor.

Så det er alt op til os, hvilken underprocedure eller -kategori vi vil kalde først.

Excel VBA-opkaldssub - eksempel # 2

Lad os se et andet eksempel, hvor vi vil bruge en opkaldsfunktion til at kalde forskellige underkategorier. Til dette har vi brug for et nyt modul. Åbn et modul fra menuen Indsæt. Og det giver en underkategori i ethvert navn som vist nedenfor.

Kode:

 Sub VBACall () Slut Sub 

Definer 3 variabler Num1, Num2 og Ans1 i DIM og tildel derefter med Long . Vi kan også bruge heltal eller dobbelt, afhængigt af ens brug. Længe vil give os mulighed for at overveje en længde på antallet.

Kode:

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

Giv nu Num1 og Num2 et vilkårligt antal efter eget valg. Vi har givet dem henholdsvis 100 og 50 . At overveje 100 og 50 vil hjælpe os med at identificere output hurtigt.

Kode:

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

Brug nu multiplikationsformlen til at multiplicere talebutikkerne i Num1 og Num2 og gemme deres svar i variablen Ans1 som vist nedenfor.

Kode:

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

I den næste kodelinie bruger vi VBA-objektet. For dette skal du vælge arket med kommandoen Arbejdsark og give det et interval af en hvilken som helst celle. Vi har valgt rækkecellen som B1. Og til sidst skal du udskrive resultatet med ethvert navn som f.eks. Resultat eller svar som vist nedenfor.

Kode:

 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"). Værdi = "Answer" End Sub 

Giv det nu det sted, hvor vi vil se svaret på samme måde som vist ovenfor. Her vælger vi celle C1 som outputcelle og sætter den sidste variabel Ans1 her.

Kode:

 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"). Værdi = "Answer" Worksheets (1) .Range ("C1"). Værdi = Ans1 Sluttund 

Kør nu koden. Vi vil se et multiplikationsresultat ved celle C1.

Skrivning af en anden underkategori under den samme kode efter slutning.

Kode:

 Sub VBACall2 () End Sub 

Definer igen 3 variabler Num3, Num4 og Ans2 i DIM og tildele derefter med Long.

Kode:

 Sub VBACall2 () Dim Num3 Som Long Dim Num4 Som Long Dim Ans2 Som Long End Sub 

Giv Num3 og Num4 de samme værdier som 100 og 50, og tilføj begge numre.

Kode:

 Sub VBACall2 () Dim Num3 Som Lang Dim Num4 Som Lang Dim Ans2 Som Lang Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 End Sub 

Brug nu VBA-objekt på en lignende måde som brugt ovenfor, og angiv derefter rækkecelle som B2 for svar og C2 til output af Ans2 .

Kode:

 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"). Værdi = Ans2 Sluttunder 

For at kalde begge resultater et ad gangen skal du bruge Opkaldsfunktion, det giver det navnet på 2. underkategori som vist nedenfor.

Kode:

 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"). Værdi = "Answer" Worksheets (1) .Range ("C1"). Værdi = Ans1 Opkald VBACall2 Slut Sub Sub VBACall2 () Dim Num3 som lang Dim Num4 Som lang Dim Ans2 Som lang Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Arbejdsark (1) .Range ("B2" ) .Value = "Svar" Arbejdsark (1) .Range ("C2"). Værdi = Ans2 End Sub 

Kompiler nu hele koden og kør. Vi vil være de første ved celle C2, vi fik resultatet af multiplikationen og ved celle C3, et resultat af tilføjelsen.

For at kende den rigtige sekvens, kan vi bruge MsgBox-kommandoen som brugt i eksempel-1 og se, hvilke værdier der kaldes til hvilken sekvens.

Fordele ved Excel VBA-opkaldssub

  • VBA Call Sub sparer tid ved at skrive den samme kode igen og igen.
  • Hvis du kalder VBA-underprocedurelageret i samme excel, reduceres også størrelsen på Excel-filen.

Ting at huske

  • Brug meddelelsesboksen til testformål for at se den sekventielle kørsel af flere koder.
  • Kompiler de større kodelinjer ved at trykke på F8-tasten, så fejldelen kan identificeres.
  • Gem filen i makro Aktivér Excel-format for at bevare den skrevne kode.
  • Brug af CALL før slut kører den første kode først, og efter den første subprocedure kører den anden kode først.

Anbefalede artikler

Dette er en guide til VBA Call Sub. Her diskuterer vi, hvordan man ringer til Sub i Excel VBA sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. VBA gør indtil loop
  2. SUBTOTAL formel i Excel
  3. VBA Mens Loop
  4. Undertræk Excel-funktion

Kategori: