/ / / Excel VBA Λειτουργία και Sub

Λειτουργία Excel VBA και Sub

Λειτουργία | Υπο

Η διαφορά μεταξύ a λειτουργία και ένα υπο σε Excel VBA είναι ότι μια συνάρτηση μπορεί να επιστρέψει μια τιμή ενώ ένα sub δεν μπορεί. Οι λειτουργίες και τα υποσύνολα γίνονται πολύ χρήσιμα καθώς αυξάνεται το μέγεθος του προγράμματος.

Λειτουργία

Εάν θέλετε το Excel VBA να εκτελέσει μια εργασία πουεπιστρέφει ένα αποτέλεσμα, μπορείτε να χρησιμοποιήσετε μια λειτουργία. Τοποθετήστε μια συνάρτηση σε μια λειτουργική μονάδα (Στο πρόγραμμα επεξεργασίας της Visual Basic, κάντε κλικ στην επιλογή Εισαγωγή, Ενότητα). Για παράδειγμα, η λειτουργία με το όνομα Περιοχή.

Function Area(x As Double, y As Double) As Double

Area = x * y

End Function

Εξήγηση: Αυτή η λειτουργία έχει δύο επιχειρήματα (τύπου Double) και έναν τύπο επιστροφής (το μέρος μετά το As και του τύπου Double). Μπορείτε να χρησιμοποιήσετε το όνομα της λειτουργίας (Περιοχή) στον κωδικό σας για να υποδείξετε ποιο αποτέλεσμα θέλετε να επιστρέψετε (εδώ x * y).

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

Τοποθετήστε ένα κουμπί εντολής στο φύλλο εργασίας σας και προσθέστε τις ακόλουθες γραμμές κώδικα:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Εξήγηση: Η συνάρτηση επιστρέφει μια τιμή έτσι πρέπει να "πιάσει" αυτή την τιμή στον κωδικό σας. Μπορείτε να χρησιμοποιήσετε μια άλλη μεταβλητή (z) για αυτό. Στη συνέχεια, μπορείτε να προσθέσετε μια άλλη τιμή σε αυτήν τη μεταβλητή (αν θέλετε). Τέλος, εμφανίστε την τιμή χρησιμοποιώντας ένα MsgBox.

Αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολών στο φύλλο:

Αποτέλεσμα λειτουργίας VBA του Excel

Υπο

Εάν θέλετε το Excel VBA να εκτελέσει κάποιες ενέργειες, μπορείτε να χρησιμοποιήσετε ένα δευτερεύον. Τοποθετήστε ένα δευτερεύον τμήμα σε μια ενότητα (Στο πρόγραμμα επεξεργασίας της Visual Basic, κάντε κλικ στην επιλογή Εισαγωγή, ενότητα). Για παράδειγμα, το υπομενού με το όνομα Περιοχή.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Εξήγηση: Αυτό το sub έχει δύο επιχειρήματα (τύπου Double). Δεν έχει τύπο επιστροφής! Μπορείτε να ανατρέξετε σε αυτό το υποσύνολο (καλέστε το υποσύνολο) από κάπου αλλού στον κώδικα σας χρησιμοποιώντας απλώς το όνομα του δευτερεύοντος και δίνοντας μια τιμή για κάθε όρισμα.

Τοποθετήστε ένα κουμπί εντολών στο φύλλο εργασίας σας και προσθέστε την ακόλουθη γραμμή κώδικα:

Area 3, 5

Αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολών στο φύλλο:

Excel Sub αποτέλεσμα VBA

Μπορείτε να δείτε τη διαφορά μεταξύ της λειτουργίαςκαι το δευτερεύον; Η συνάρτηση επέστρεψε την τιμή 15. Προσθέσαμε την τιμή 2 σε αυτό το αποτέλεσμα και εμφανίσαμε το τελικό αποτέλεσμα. Όταν ονομάσαμε το sub, δεν είχαμε πλέον έλεγχο επί του αποτελέσματος (15) επειδή ένα sub δεν μπορεί να επιστρέψει μια τιμή!

Επίσης διαβάστε: