Στον προγραμματισμό VBA, μια συνάρτηση επιστρέφει μια τιμή. Μπορείτε να εκτελέσετε διαδικασίες συνάρτησης και να καλέσετε τη συνάρτηση στο Excel 2016. Οι συναρτήσεις, σε αντίθεση με τις υποδιαδικασίες, μπορούν να εκτελεστούν μόνο με δύο τρόπους:
Δοκιμάστε αυτήν την απλή λειτουργία. Εισαγάγετε το σε μια μονάδα VBA:
Συνάρτηση CubeRoot(αριθμός)
CubeRoot = αριθμός ^ (1 / 3)
Λειτουργία τερματισμού
Αυτή η συνάρτηση είναι αρκετά θορυβώδης. Απλώς υπολογίζει την κυβική ρίζα του αριθμού που του δόθηκε ως όρισμα. Παρέχει, ωστόσο, ένα σημείο εκκίνησης για την κατανόηση των λειτουργιών. Παρουσιάζει επίσης μια σημαντική ιδέα σχετικά με τις συναρτήσεις: πώς να επιστρέψετε την τιμή. (Θυμάστε ότι μια συνάρτηση επιστρέφει μια τιμή, σωστά;)
Σημειώστε ότι η μεμονωμένη γραμμή κώδικα που συνθέτει αυτή τη διαδικασία συνάρτησης εκτελεί έναν υπολογισμό. Το αποτέλεσμα των μαθηματικών (αριθμός στη δύναμη του 1/3) εκχωρείται στη μεταβλητή CubeRoot. Όχι τυχαία, το CubeRoot είναι επίσης το όνομα της συνάρτησης. Για να πείτε στη συνάρτηση ποια τιμή θα επιστρέψει, εκχωρείτε αυτήν την τιμή στο όνομα της συνάρτησης.
Κλήση της συνάρτησης από μια διαδικασία Sub
Επειδή δεν μπορείτε να εκτελέσετε μια συνάρτηση απευθείας, πρέπει να την καλέσετε από άλλη διαδικασία. Εισαγάγετε την ακόλουθη απλή διαδικασία στην ίδια λειτουργική μονάδα VBA που περιέχει τη συνάρτηση CubeRoot:
Sub CallerSub()
Ans = CubeRoot(125)
MsgBox Απ
End Sub
Όταν εκτελείτε τη διαδικασία CallerSub, το Excel εμφανίζει ένα πλαίσιο μηνύματος που περιέχει την τιμή της μεταβλητής Ans, η οποία είναι 5.
Να τι συμβαίνει: Εκτελείται η συνάρτηση CubeRoot και λαμβάνει ένα όρισμα 125. Ο υπολογισμός εκτελείται από τον κωδικό της συνάρτησης (χρησιμοποιώντας την τιμή που διαβιβάστηκε ως όρισμα) και η επιστρεφόμενη τιμή της συνάρτησης εκχωρείται στη μεταβλητή Ans. Στη συνέχεια, η συνάρτηση MsgBox εμφανίζει την τιμή της μεταβλητής Ans.
Δοκιμάστε να αλλάξετε το όρισμα που μεταβιβάστηκε στη συνάρτηση CubeRoot και εκτελέστε ξανά τη μακροεντολή CallerSub. Λειτουργεί ακριβώς όπως θα έπρεπε — υποθέτοντας ότι δίνετε στη συνάρτηση ένα έγκυρο όρισμα (θετικό αριθμό).
Παρεμπιπτόντως, η διαδικασία CallerSub θα μπορούσε να απλοποιηθεί λίγο. Η μεταβλητή Ans δεν απαιτείται πραγματικά, εκτός εάν ο κώδικάς σας θα χρησιμοποιήσει αυτήν τη μεταβλητή αργότερα. Θα μπορούσατε να χρησιμοποιήσετε αυτή τη μεμονωμένη πρόταση για να λάβετε το ίδιο αποτέλεσμα:
MsgBox CubeRoot(125)
Κλήση συνάρτησης από τύπο φύλλου εργασίας
Τώρα ήρθε η ώρα να καλέσετε αυτήν τη διαδικασία της Συνάρτησης VBA από έναν τύπο φύλλου εργασίας. Ενεργοποιήστε ένα φύλλο εργασίας στο ίδιο βιβλίο εργασίας που περιέχει τον ορισμό της συνάρτησης CubeRoot. Στη συνέχεια, εισαγάγετε τον ακόλουθο τύπο σε οποιοδήποτε κελί:
=CubeRoot(1728)
Το κελί εμφανίζει το 12, το οποίο είναι όντως η κυβική ρίζα του 1.728.
Όπως θα περίμενε κανείς, μπορείτε να χρησιμοποιήσετε μια αναφορά κελιού ως όρισμα για τη συνάρτηση CubeRoot. Για παράδειγμα, εάν το κελί A1 περιέχει μια τιμή, μπορείτε να εισαγάγετε =CubeRoot(A1) . Σε αυτήν την περίπτωση, η συνάρτηση επιστρέφει τον αριθμό που προκύπτει υπολογίζοντας την κυβική ρίζα της τιμής στο A1.
Μπορείτε να χρησιμοποιήσετε αυτή τη συνάρτηση όσες φορές στο φύλλο εργασίας. Όπως οι ενσωματωμένες λειτουργίες του Excel, οι προσαρμοσμένες σας συναρτήσεις εμφανίζονται στο παράθυρο διαλόγου Εισαγωγή συνάρτησης. Κάντε κλικ στο κουμπί Εισαγωγή της γραμμής εργαλείων λειτουργίας και επιλέξτε την κατηγορία Καθορισμένη από το χρήστη. Το πλαίσιο διαλόγου Εισαγωγή συνάρτησης παραθέτει τη δική σας λειτουργία.
Η συνάρτηση CubeRoot εμφανίζεται στην κατηγορία User Defined του παραθύρου διαλόγου Εισαγωγή συνάρτησης.
Εάν θέλετε το παράθυρο διαλόγου Εισαγωγή συνάρτησης να εμφανίζει μια περιγραφή της συνάρτησης, ακολουθήστε τα εξής βήματα:
Επιλέξτε Προγραμματιστής → Κωδικός → Μακροεντολές.
Το Excel εμφανίζει το πλαίσιο διαλόγου Μακροεντολή, αλλά το CubeRoot δεν εμφανίζεται στη λίστα. (Το CubeRoot είναι μια διαδικασία συνάρτησης και αυτή η λίστα εμφανίζει μόνο υποδιαδικασίες.) Μην ανησυχείτε.
Πληκτρολογήστε τη λέξη CubeRoot στο πλαίσιο Όνομα μακροεντολής.
Κάντε κλικ στο κουμπί Επιλογές.
Εισαγάγετε μια περιγραφή της λειτουργίας στο πλαίσιο Περιγραφή.
Κάντε κλικ στο OK για να κλείσετε το παράθυρο διαλόγου Επιλογές μακροεντολών.
Κλείστε το παράθυρο διαλόγου Μακροεντολή κάνοντας κλικ στο κουμπί Άκυρο.
Αυτό το περιγραφικό κείμενο εμφανίζεται τώρα στο πλαίσιο διαλόγου Εισαγωγή συνάρτησης.
Ελέγξτε τη συνάρτηση CubeRoot που χρησιμοποιείται σε τύπους φύλλων εργασίας.
Χρήση της συνάρτησης CubeRoot σε τύπους.