Επιστροφή 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;

Παράδειγμα # 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 End Sub Sub Return

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

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

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

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

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

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

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

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

"GoSub Macro2"

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

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

Τώρα κάντε κλικ στο Ok. Θα επισημάνει τη δεύτερη δήλωση «Επιστροφή».

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

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

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

Τώρα κάντε κλικ στο, ΟΚ. Θα επισημάνει τη δήλωση «Επιστροφή».

Τώρα πατήστε το πλήκτρο 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 αφού γίνουν όλες οι δηλώσεις επιστροφής για να αποφευχθεί το μήνυμα σφάλματος.

ενδιαφέροντα άρθρα...