VBA - Επιστρέψτε μια τιμή από μια υποδιαδικασία

Αυτό το σεμινάριο θα σας διδάξει πώς να επιστρέψετε μια τιμή από μια δευτερεύουσα διαδικασία στο VBA.

Μια υπο -διαδικασία δεν έχει σχεδιαστεί για να επιστρέφει μια τιμή - για αυτό χρησιμοποιείται μια διαδικασία συνάρτησης. Ωστόσο, μπορεί να υπάρξει κάποια στιγμή που εκτελείτε κάποιο κώδικα σε μια δευτερεύουσα διαδικασία όπου πρέπει να λάβετε μια τιμή από αυτήν την υποδιαδικασία. Ο τρόπος για να το κάνετε αυτό είναι να χρησιμοποιήσετε ενότητα ή καθολικές μεταβλητές ή να χρησιμοποιήσετε μια υποδιαδικασία για να συμπληρώσετε ένα φύλλο Excel.

Χρησιμοποιώντας μεταβλητές για να επιστρέψετε μια τιμή

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

123456789 Επιλογή ρητήDim dbl Ποσότητα ως διπλόSub TestA ()«καλέστε το υποσύνολο TestBΚαλέστε το TestB'εμφανίζει την τιμή της μεταβλητής στο παράθυρο της ενότηταςDebug.Print dblQtyΤέλος υπο
1234 Sub TestB ()"συμπληρώστε τη μεταβλητή μονάδαςdblQty = 900Τέλος υπο

Για να τα συνδυάσουμε, θα τρέξουμε το TestA, το οποίο με τη σειρά του θα καλέσει το TestB και θα μας δώσει την τιμή 900 στο αμέσως παράθυρο.

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

Παγκόσμια μεταβλητή

Μπορείτε να δηλώσετε τη μεταβλητή σε παγκόσμιο επίπεδο για να τη χρησιμοποιήσετε σε όλες τις ενότητες του έργου σας.

Χρήση υποδιαδικασίας για συμπλήρωση φύλλου Excel

Η παρακάτω Διαδικασία θα συμπληρώσει άμεσα το εύρος A1 έως C1 στο φύλλο Excel σας, επιστρέφοντας έτσι τιμές στα κελιά από την υποδιαδικασία.

12345 Sub PopulateRange ()Εύρος ("A1") = "Προϊόν"Εύρος ("B1") = "Ποσότητα"Εύρος ("C1") = "Κόστος"Τέλος υπο

Στη συνέχεια, μπορείτε να αναφέρετε αυτές τις τιμές σε άλλη διαδικασία αναφέροντας τις τιμές κελιού:

1234567 Sub RetrieveRange ()Χαμηλό προϊόν ως συμβολοσειρά, Ποσοστό μακρύ, Κόστος διπλόΠροϊόν = Εύρος ("A1")Quant = Range ("B1")Κόστος = Εύρος ("C1")Τέλος υπο

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave