Επιστροφή VBA | Πώς να χρησιμοποιήσετε το GoSub Return Statement στο VBA;

Δήλωση επιστροφής του Excel VBA

Το VBA είναι υπέροχο και σωτήριο για όσους γνωρίζουν την κωδικοποίηση VBA μέσα και έξω, μπορεί να εξοικονομήσει τόνους χρόνου στο χώρο εργασίας μας. Στα προηγούμενα άρθρα μας, έχουμε συζητήσει πολλά πράγματα και έννοιες της επιστροφής VBA. Μια τέτοια ιδέα είναι η δήλωση GoSub Return. Σε αυτό το άρθρο, θα σας παρουσιάσουμε αυτές τις έννοιες.

Τι είναι η δήλωση επιστροφής GoSub;

Η δήλωση "Go Sub" σημαίνει ότι θα μεταβεί στη γραμμή κώδικα που υποδεικνύεται από την ετικέτα μέσω ονόματος και εκτελεί ένα συγκεκριμένο σύνολο της εργασίας έως ότου εντοπίσει τη δήλωση "Return".

Αυτό είναι παρόμοιο με τη δήλωση χειριστή σφαλμάτων "GoTo Label", αλλά αυτό που κάνει το "GoSub Return" είναι να επιστρέψει στην επόμενη γραμμή κώδικα αντί να συνεχίσει από το όνομα της ετικέτας.

Ακολουθεί η σύνταξη της δήλωσης επιστροφής VBA GoSub.

GoSub [Όνομα ετικέτας] … .. Γραμμή κώδικα [Όνομα ετικέτας]: … .. Γραμμή κώδικα για την εκτέλεση της εργασίας

Ξέρω ότι είναι δύσκολο να καταλάβουμε από την ανάγνωση της σύνταξης, αλλά χρησιμοποιώντας το παράδειγμα μπορεί να μπορείτε να κατανοήσετε την έννοια.

Πριν πάω σε παραδείγματα, επιτρέψτε μου να πω μερικά πράγματα σχετικά με αυτήν τη δήλωση.

  • Η δήλωση GoSub καλεί υπορουτίνα στο vba που ονομάζεται από μια ετικέτα στην ίδια ρουτίνα ή Λειτουργία.
  • Τόσο το GoSub όσο και το Return θα πρέπει να βρίσκονται στην ίδια διαδικασία, δεν μπορούμε να καλέσουμε άλλη μακροεντολή υπορουτίνας εδώ.
  • Μπορείτε να εισαγάγετε οποιονδήποτε αριθμό δηλώσεων GoSub Return.
  • Μια δήλωση επιστροφής θα συνεχίσει την εκτέλεση του κώδικα από το σημείο που έφυγε πριν μεταβεί στην υποδιαδικασία που υποδεικνύεται από ένα όνομα ετικέτας.

Πώς να χρησιμοποιήσετε το GoSub Return Statement στο VBA;

Μπορείτε να κατεβάσετε αυτό το Πρότυπο επιστροφής Excel VBA εδώ - Πρότυπο επιστροφής Excel VBA

Παράδειγμα # 1

Για να κατανοήσετε τη χρήση αυτής της δήλωσης, κοιτάξτε πρώτα στον παρακάτω κώδικα, αργότερα θα σας εξηγήσω τον κωδικό γραμμή προς γραμμή.

Κώδικας:

 Sub Go_Sub_Return () GoSub Macro1 'Label Name1 GoSub Macro2' Label Name2 GoSub Macro3 'Label Name3 Exit Sub Macro1: MsgBox "Now running Macro1" Return Macro2: MsgBox "Now running Macro2" Return Macro3: MsgBox "Now Running Macro3" End Sub Sub Return 

Για να κατανοήσετε αυτόν τον κωδικό, ας εκτελέσουμε τον κωδικό γραμμή προς γραμμή πατώντας το πλήκτρο F8. Με το πάτημα του πλήκτρου F8 για πρώτη φορά θα ξεκινήσει η μακροεντολή.

Τώρα πατήστε το πλήκτρο F8 για άλλη μια φορά για να μεταβείτε στην επόμενη γραμμή.

Όλοι γνωρίζουμε ότι η μακροεντολή θα τρέχει τον κωδικό γραμμή προς γραμμή, αλλά αν πατήσετε το πλήκτρο F8 δεν θα πάει στην επόμενη γραμμή, αλλά λειτουργεί διαφορετικά.

Έχει μεταβεί στην ετικέτα που ονομάζεται "Macro1", διότι στην προηγούμενη δήλωση "GoSub" έχουμε δώσει εντολή στη μακροεντολή να μεταβεί στο όνομα της ετικέτας υπο-διαδικασίας "Macro1", επομένως έχει μεταβεί στο αντίστοιχο όνομα της ετικέτας.

Τώρα πατώντας το πλήκτρο F8, η μακροεντολή excel θα εκτελέσει την ετικέτα "Macro1" για την εμφάνιση του αποτελέσματος στο πλαίσιο μηνύματος.

Κάντε κλικ στο Ok του πλαισίου μηνύματος για να επιστρέψετε στο παράθυρο κωδικοποίησης.

Τώρα έχει επισημάνει τη δήλωση "Επιστροφή" εάν πατήσετε το πλήκτρο F8 για άλλη μια φορά, αυτό που θα κάνει είναι "Επιστροφή" στην προηγούμενη γραμμή κώδικα πριν μεταβεί στο όνομα της ετικέτας.

Την τελευταία φορά που εκτέλεσε τον κωδικό "GoSub Macro1" και εκτέλεσε το όνομα της ετικέτας "Macro1" δεδομένου ότι έχουμε αναφέρει τη δήλωση "Return" επιστρέφει στην επόμενη γραμμή κώδικα, δηλαδή

"GoSub Macro2"

Αυτό που λέει η δήλωση είναι, "go-to label που ονομάζεται Macro2". Στο παρακάτω για την ετικέτα "Macro2", ανέφερα ένα συγκεκριμένο σύνολο εργασιών.

Τώρα θα πάρουμε τη δεύτερη εργασία υπο-διαδικασίας που δείχνει αξία στο πλαίσιο μηνύματος.

Τώρα κάντε κλικ στο Ok, θα επισημανθεί η δεύτερη δήλωση "Return".

Τώρα, κάνοντας κλικ στο πλήκτρο F8, θα επιστρέψει στην επόμενη γραμμή κώδικα πριν επιστρέψει στην ετικέτα "Macro2". Τώρα θα επισημανθεί το "GoSub Macro3".

Τώρα θα πάει στην ετικέτα "Macro3", πατήστε το πλήκτρο F8.

Τώρα η εργασία της τρίτης ετικέτας θα εκτελεστεί.

Τώρα κάντε κλικ στο OK, θα επισημάνει τη δήλωση "Return".

Τώρα πατώντας το πλήκτρο F8 για άλλη μια φορά θα επιστρέψει στη γραμμή του κωδικού "Exit Sub".

Όχι, θα βγεί από την υπορουτίνα. Είναι απαραίτητο να προσθέσετε τη λέξη "Exit Sub", διαφορετικά θα παρουσιαστεί σφάλμα.

Παράδειγμα # 2

Τώρα ρίξτε μια ματιά σε ένα ακόμη παράδειγμα χρήσης της δήλωσης GoSub Return.

Κώδικας:

 Sub Go_Sub_Return1 () Dim Num As Long Num = Application.InputBox (Prompt: = "Παρακαλώ εισάγετε τον αριθμό εδώ", Τίτλος: = "Αριθμός Divsion") Εάν Num> 10 Τότε GoSub Division Else MsgBox "Ο αριθμός είναι μικρότερος από 10" Έξοδος Sub End If Exit Sub Division: MsgBox Num / 5 Επιστροφή End Sub 

Αυτός ο κωδικός θα σας ζητήσει να εισαγάγετε τον αριθμό που είναι> 10, εάν ο αριθμός είναι> 10 τότε θα εκτελέσει την εργασία διαίρεσής του με 5 (Το όνομα της ετικέτας είναι "Διαίρεση") αλλιώς θα εμφανίσει το μήνυμα ως "Ο αριθμός είναι λιγότερο από 10 ".

Πράγματα που πρέπει να θυμάστε

  • Το όνομα της ετικέτας πρέπει να είναι το ίδιο στη δήλωση GoSub και Return και στο όνομα της ετικέτας επιστροφής πρέπει να ακολουθείται από άνω και κάτω τελεία (:).
  • Χρησιμοποιείτε πάντα το Exit Sub στο VBA αφού ολοκληρωθούν όλες οι δηλώσεις επιστροφής για να αποφύγετε το μήνυμα σφάλματος.