VBA Retur - Hvordan bruke GoSub Return Statement i VBA?

Innholdsfortegnelse

Excel VBA Returerklæring

VBA er fantastisk og en livredder for de som kjenner inn og ut av VBA-koding. Det kan spare mye tid på arbeidsplassen vår. I våre tidligere artikler har vi diskutert mange ting og konsepter med VBA-retur. Et slikt konsept er GoSub Return-uttalelsen. I denne artikkelen vil vi introdusere deg for disse konseptene.

Hva er GoSub Return Statement?

Uttalelsen "Go Sub" betyr at den vil gå til kodelinjen som er angitt av etiketten gjennom navnet og utfører et spesifikt sett av oppgaven til den finner utsagnet "Return".

Dette ligner på feilhåndteringsuttalelsen "GoTo Label", men hva "GoSub Return" gjør er at den vil gå tilbake til neste kodelinje i stedet for å fortsette fra etikettnavnet.

Nedenfor er syntaksen til VBA GoSub Return-setningen.

GoSub (etikettnavn)  …  Kodelinje (etikettnavn ):  … Kodelinje for å utføre oppgaven

Jeg vet at det er vanskelig å forstå fra å lese syntaksen, men ved å bruke eksemplet kan du kanskje forstå konseptet.

Før jeg går til eksempler, la meg fortelle noen ting om denne uttalelsen.

  • GoSub-setningen kaller subrutine i VBA, som er navngitt av en etikett innenfor samme rutine eller Funksjon.
  • Både GoSub og Return skal være innenfor samme prosedyre. Vi kan ikke kalle en annen subrutine makro her.
  • Du kan introdusere et hvilket som helst antall GoSub Return-uttalelser.
  • En returerklæring vil fortsette kjøringen av koden der den slapp før den hoppet til underprosedyren angitt med et etikettnavn.

Hvordan bruker jeg GoSub Return Statement i VBA?

Eksempel 1

For å forstå bruken av denne setningen, se først på koden nedenfor. Senere vil jeg forklare deg koden linje for linje.

Kode:

Sub Go_Sub_Return () GoSub Macro1 'Etikettnavn1 GoSub Macro2' Etikettnavn2 GoSub Macro3 'Etikettnavn3 Avslutt Sub Macro1: MsgBox "Kjører nå Macro1" Return Macro2: MsgBox "Kjører nå Macro2" Return Macro3: MsgBox "Nå kjører Macro3" Return End Sub

For å forstå denne koden, la oss kjøre koden linje for linje ved å trykke på F8-tasten. Når du trykker på F8-tasten første gang, vil den starte makrokjøringen.

Trykk nå på F8-tasten en gang til for å gå til neste linje.

Vi vet alle at makro vil kjøre koden linje for linje, men hvis du trykker på F8-tasten, går den ikke til neste linje; heller, det fungerer annerledes.

Det har hoppet til etiketten som heter "Macro1", det er fordi vi i forrige uttalelse "GoSub" har instruert makroen om å gå til underprosedyrenavnet "Macro1", så følgelig har den hoppet til det respektive etikettnavnet.

Nå, ved å trykke på F8-tasten, vil excel-makroen utføre etiketten "Macro1" for å vise resultatet i meldingsboksen.

Klikk på Ok i meldingsboksen for å gå tilbake til kodingsvinduet.

Nå hadde den fremhevet uttalelsen "Return". Hvis du trykker på F8-tasten en gang til, vil den “returnere tilbake” til forrige kodelinje før den hoppet til etikettnavnet.

Forrige gang den utførte koden "GoSub Macro1", og den utførte etikettenavnet "Macro1" -oppgaven. Siden vi har nevnt “Return” -uttalelsen, er den tilbake til neste kodelinje, dvs.

“GoSub Macro2”

Det som uttalelsen sier er, “go-to label called Macro2”. I det følgende for merking "Macro2" har jeg nevnt et spesifikt sett med oppgaver.

Nå får vi den andre underprosedyreoppgaven med å vise verdi i meldingsboksen.

Klikk nå på, OK. Det vil markere den andre "Return" -uttalelsen.

Når du klikker på F8-tasten, går den tilbake til neste kodelinje før den går tilbake til etiketten "Macro2". Nå vil den markere "GoSub Macro3".

Nå går den til etiketten "Macro3", trykk på F8-tasten.

Nå utføres tredje etikettoppgave.

Klikk nå på, OK. Det vil markere uttalelsen "Return".

Trykk nå på F8-tasten en gang til; det vil hoppe tilbake til linjen med kode "Exit Sub."

No, it will exit the subroutine. It is necessary to add the word “Exit Sub” otherwise, and it will encounter an error.

Example #2

Now take a look at one more example of using the GoSub Return statement.

Code:

Sub Go_Sub_Return1() Dim Num As Long Num = Application.InputBox (Prompt:="Please enter the number here", Title:="Divsion Number") If Num> 10 Then GoSub Division Else MsgBox "Number is less than 10" Exit Sub End If Exit Sub Division: MsgBox Num / 5 Return End Sub

This code will ask you to enter the number which is>10. If the number is>10, then it will perform the task of dividing it by 5 (Label Name is “Division”), or else it will show the message as “Number is less than 10”.

Things to Remember

  • Etikettenavnet skal være det samme i GoSub- og Return-setningen, og i returuttalelsen skal etikettnavnet følges av et kolon (:).
  • Bruk alltid Exit Sub i VBA etter at alle returoppgavene er kommet for å unngå feilmeldingen.

Interessante artikler...