Introduksjon til Excel VBA Call Sub

I VBA har vi en funksjon som CALL, som brukes til å ringe verdiene som er lagret i en annen underkategori eller subprosedyre. Anta at vi har skrevet en kode et sted i en arbeidsbok, nå mens vi skriver en annen kode trenger vi den samme koden som er skrevet tidligere. Så i stedet for å skrive den samme koden igjen, kan vi kalle den komplette koden eller subprosedyren til den nåværende underkategorien eller subprosedyren. På denne måten kan du unngå å gjøre den samme aktiviteten i arbeidsboken igjen og igjen.

Hvordan ringe sub i Excel VBA?

Nedenfor er de forskjellige eksemplene du kan kalle Sub i Excel VBA:

Du kan laste ned denne VBA Call Sub Excel Template her - VBA Call Sub Excel Template

Excel VBA-anropssub - eksempel # 1

La oss først se et enkelt eksempel hvor vi vil RINGE allerede skrevet underkategori eller prosedyre for kode. For dette trenger vi en modul.

Gå til VBA-vinduet og under Sett inn menyalternativ, klikk på Modul som vist nedenfor.

Etter det vil vi få en blank side eller et vindu med Module. Nå skriver du en underkategori av kode som vi utfører eller i et hvilket som helst annet navn som vist nedenfor.

Kode:

 Sub Calling () Avslutt Sub 

Nå bruker du en kommando i meldingsboksen og skriver inn tekst eller ord du vil se i meldingsboksen. Her bruker vi “ First ” som vist nedenfor.

Kode:

 Sub Calling () MsgBox ("First") Slutt Sub 

Nå kompilerer koden og kjør den ved å klikke på Play-knappen som er under menylinjen. Vi vil se en meldingsboks som inneholder meldingen “ Først ” som vist nedenfor.

Nå etter slutten i samme modul, skriv en annen underkategori eller prosedyre i hvilket som helst navn som vist nedenfor.

Kode:

 Sub Arriving () Slutt Sub 

I den igjen bruker kommandoen MsgBox og gi den melding eller tekst som du velger. Her har vi gitt det " Second " som vist nedenfor.

Kode:

 Sub Arriving () MsgBox ("Second") Slutt Sub 

Nå, hvis vi kjører den komplette koden, vil vi få utdata fra bare den siste underkategorien, som er en meldingsboks som inneholder melding " Second " som vist nedenfor.

Her kommer funksjonen CALL, som vi vil bruke til å ringe begge meldingene én etter én. Dette vil bli brukt i den første underkategorien.

For denne typen Ring i den første underkategorien før slutt, etterfulgt av navnet på den underkategorien hvis koden vi vil kalle. Heretter MsgBox bruker vi Ring etterfulgt av Ankomst, som er underkategorienavn på koden skrevet under.

Kode:

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

Sett sammen den komplette koden fra start til slutt og kjør den. Vi ser meldingsboksen med navnet "Først". Klikk nå på OK for å gå videre. Når vi har gjort det, får vi den andre meldingsboksen som inneholder meldingen “ Second ” som vist nedenfor. Og hvis du klikker på Ok igjen, vil den avslutte prosedyren.

Hva om vi endrer posisjonen til samtalefunksjonen fra før slutt til etter den første underkategorien som vist nedenfor? La nå kjøre den komplette koden igjen.

Kode:

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

Den vil vise meldingen som er lagret i den andre delprosessen først, som er “ Second ” etterfulgt av meldingen “ First ” når vi klikker på Ok som vist nedenfor.

Så det er helt opp til oss hvilken underprosedyre eller kategori vi ønsker å kalle først.

Excel VBA-samtalesub - eksempel # 2

La oss se et annet eksempel der vi vil bruke en samtalefunksjon til å ringe annen underkategori. For dette trenger vi en ny modul. Åpne en modul fra Sett inn-menyen. Og den gir en underkategori i hvilket som helst navn som vist nedenfor.

Kode:

 Sub VBACall () Slutt Sub 

Definer 3 variabler Num1, Num2 og Ans1 i DIM og tilordn deretter med Long . Vi kan bruke heltall eller dobbelt også, avhengig av ens bruk. Lenge vil tillate oss å vurdere hvilken som helst lengde på antall.

Kode:

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

Gi nå Num1 og Num2 et hvilket som helst antall du ønsker. Vi har gitt dem henholdsvis 100 og 50 . Å vurdere 100 og 50 vil hjelpe oss med å identifisere output raskt.

Kode:

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

Bruk nå multiplikasjonsformel for å multiplisere talllagrene i Num1 og Num2 og lagre svaret i variabel 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 neste kodelinjen bruker vi VBA-objektet. For dette velger du arket med kommandoen Arbeidsark og gir det et område av hvilken som helst celle. Vi har valgt avstandscellen som B1. Og skriv til slutt ut resultatet med et hvilket som helst navn som 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"). Verdi = "Answer" End Sub 

Nå gir den stedet der vi vil se svaret på samme måte som vist ovenfor. Her velger vi celle C1 som utgangscelle og legger den siste variabelen 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"). Verdi = "Answer" Worksheets (1) .Range ("C1"). Verdi = Ans1 Sluttund 

Nå kjører koden. Vi vil se et multiplikasjonsresultat ved celle C1.

Å skrive en annen underkategori under samme kode etter slutt.

Kode:

 Sub VBACall2 () Slutt Sub 

Definer igjen 3 variabler Num3, Num4 og Ans2 i DIM og tilordn deretter med Long.

Kode:

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

Gi Num3 og Num4 de samme verdiene som 100 og 50, og legg til begge tallene.

Kode:

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

Nå bruker VBA Object på en lignende måte som brukt ovenfor og gi deretter rekkevidde celle som B2 for svar og C2 for utdata fra 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"). Verdi = "Answer" Worksheets (1) .Range ("C2"). Verdi = Ans2 Slutt sub 

Hvis du vil kalle begge resultatene én etter én, bruker du samtalefunksjonen, den gir navnet 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"). Verdi = "Answer" Worksheets (1) .Range ("C1"). Verdi = Ans1 Ring VBACall2 Slutt Sub Sub VBACall2 () Dim Num3 som lang Dim Num4 Som lang Dim Ans2 Som lang Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Arbeidsark (1) .Range ("B2" ) .Value = "Answer" Worksheets (1) .Range ("C2"). Value = Ans2 End Sub 

Sett sammen hele koden og kjør. Vi vil være de første ved celle C2, vi fikk resultatet av multiplikasjonen og ved celle C3, et resultat av tilsetningen.

For å vite riktig sekvens, kan vi bruke MsgBox-kommandoen som brukt i eksempel-1 og se hvilke verdier som heter i hvilken sekvens.

Fordeler med Excel VBA Call Sub

  • VBA Call Sub sparer tid på å skrive den samme koden igjen og igjen.
  • Hvis du ringer VBA-underprosedyrelager i samme excel, reduseres også størrelsen på Excel-filen.

Ting å huske

  • Bruk meldingsboksen til testformål for å se sekvensiell kjøring av flere koder.
  • Sett sammen de større kodelinjene ved å trykke på F8-tasten slik at feildelen kan identifiseres.
  • Lagre filen i makro Aktiver Excel-format for å beholde den skrevne koden.
  • Bruke CALL før slutt kjører den første koden først, og etter den første underprosessen kjører den andre koden først.

Anbefalte artikler

Dette er en guide til VBA Call Sub. Her diskuterer vi hvordan du kan ringe Sub i Excel VBA sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. VBA Gjør til sløyfe
  2. SUBTOTAL Formel i Excel
  3. VBA Mens Loop
  4. Substring Excel-funksjon

Kategori: