Παρόλο που το Excel έχει ήδη εκατοντάδες ενσωματωμένες συναρτήσεις όπως SUM, VLOOKUP, LEFT και ούτω καθεξής, οι διαθέσιμες ενσωματωμένες λειτουργίες συνήθως δεν επαρκούν για να εκτελέσουν αρκετά πολύπλοκες εργασίες. Ωστόσο, μην ανησυχείτε γιατί χρειάζεται μόνο να δημιουργήσετε μόνοι σας τις απαιτούμενες λειτουργίες.
Βήμα
Βήμα 1. Δημιουργήστε ένα νέο βιβλίο εργασίας ή ανοίξτε το βιβλίο εργασίας που θέλετε να επεξεργαστείτε με τις λειτουργίες καθορισμένες από το χρήστη (UDF)
Βήμα 2. Ανοίξτε το Visual Basic Editor στο Microsoft Excel μέσω Tools-> Macro-> Visual Basic Editor (ή πατήστε τη συντόμευση Alt+F11)
Βήμα 3. Κάντε κλικ στο κουμπί Ενότητα για να προσθέσετε μια νέα ενότητα στο φύλλο εργασίας σας
Μπορείτε να δημιουργήσετε ένα UDF σε ένα βιβλίο εργασίας χωρίς να προσθέσετε μια νέα ενότητα, αλλά η συνάρτηση δεν θα λειτουργήσει σε άλλα φύλλα εργασίας στο ίδιο βιβλίο εργασίας.
Βήμα 4. Δημιουργήστε το "κεφάλι" ή το "πρωτότυπο" της λειτουργίας σας
Το πρωτότυπο λειτουργίας πρέπει να ακολουθεί την ακόλουθη δομή:
δημόσια συνάρτηση "Όνομα συνάρτησης" (παράμετρος1 Ως τύπος1, παράμετρος2 Ως τύπος2) Ως τύπος αποτελέσματος.
Τα πρωτότυπα μπορούν να έχουν όσο το δυνατόν περισσότερες λειτουργίες και οι τύποι τους μπορεί να είναι όλοι οι βασικοί τύποι δεδομένων ή τύποι αντικειμένων Excel με τη μορφή εύρους. Μπορείτε να σκεφτείτε τις παραμέτρους ως "τελεστές" (τελεστές) στις οποίες θα λειτουργήσει η συνάρτηση. Για παράδειγμα, όταν γράφετε SIN (45) για να υπολογίσετε το ημίτονο των 45 μοιρών, ο αριθμός 45 θα ληφθεί ως παράμετρος. Στη συνέχεια, ο κώδικας συνάρτησης θα χρησιμοποιήσει αυτές τις τιμές για να εκτελέσει υπολογισμούς και να εμφανίσει τα αποτελέσματα.
Βήμα 5. Προσθέστε τον κωδικό λειτουργίας για να βεβαιωθείτε ότι: 1) χρησιμοποιείτε την τιμή που δίνει η παράμετρος. 2) περάστε το αποτέλεσμα στο όνομα της συνάρτησης. και 3) κλείστε τη συνάρτηση με την πρόταση "τελική συνάρτηση". Η εκμάθηση προγράμματος σε VBA ή σε οποιαδήποτε άλλη γλώσσα απαιτεί πολύ χρόνο και λεπτομερή καθοδήγηση. Ευτυχώς, αυτές οι λειτουργίες έχουν συνήθως μικρά μπλοκ κώδικα και δεν χρησιμοποιούν πολύ τις δυνατότητες της γλώσσας προγραμματισμού. Ακολουθούν ορισμένα στοιχεία της γλώσσας VBA που μπορούν να χρησιμοποιηθούν:
- Το μπλοκ If (if), το οποίο σας επιτρέπει να εκτελέσετε ένα τμήμα κώδικα μόνο εάν πληρείται η συνθήκη. Ως παράδειγμα:
- Το Μπορείτε να παραλείψετε τη λέξη -κλειδί Άλλο μαζί με το δεύτερο μέρος του κώδικα, καθώς είναι προαιρετικό.
- Το μπλοκ Do (do), το οποίο εκτελεί ένα τμήμα του κώδικα while ή till έως ότου ή έως ότου ικανοποιηθεί η συνθήκη. Ως παράδειγμα:
- Το Σημειώστε επίσης τη δεύτερη γραμμή που "δηλώνει" τη μεταβλητή. Μπορείτε να προσθέσετε μεταβλητές στον κώδικά σας για μελλοντική χρήση. Οι μεταβλητές λειτουργούν ως προσωρινές τιμές στον κώδικα. Τέλος, θεωρήστε τη δήλωση συνάρτησης ως BOOLEAN, η οποία είναι ένας τύπος δεδομένων που επιτρέπει μόνο TRUE ή FALSE τιμές. Αυτή η μέθοδος προσδιορισμού πρώτων αριθμών απέχει πολύ από τη βέλτιστη, αλλά ο κώδικας έχει γραφτεί με τέτοιο τρόπο ώστε να είναι ευανάγνωστο.
- Για μπλοκ (προς), το οποίο εκτελεί μια ορισμένη ποσότητα κώδικα. Ως παράδειγμα:
- Μια σταθερή τιμή που πληκτρολογείται απευθείας στον τύπο κελιού. Σε αυτήν την περίπτωση, το κείμενο (συμβολοσειρά) πρέπει να παρατίθεται.
- Αναφορές κελιών, για παράδειγμα Β6 ή εύρος όπως Α1: Γ3 (η παράμετρος πρέπει να είναι τύπου δεδομένων "Εύρος")
-
Μια άλλη συνάρτηση που περιλαμβάνεται στη συνάρτηση σας (η λειτουργία σας μπορεί επίσης να περικλείεται σε άλλη συνάρτηση), για παράδειγμα: = Factorial (MAX (D6: D8))
Βήμα 7. Βεβαιωθείτε ότι τα αποτελέσματα είναι σωστά
Χρησιμοποιήστε το αρκετές φορές για να βεβαιωθείτε ότι η συνάρτηση είναι σε θέση να χειριστεί σωστά διάφορες τιμές παραμέτρων:
Συμβουλές
- Όταν γράφετε μπλοκ κώδικα σε δομές ελέγχου όπως If, For, Do, κ.λπ., βεβαιωθείτε ότι έχετε εσοχή (εισαγάγετε ελαφρώς το αριστερό περίγραμμα γραμμής μέσα) το μπλοκ κώδικα πατώντας το πλήκτρο διαστήματος αρκετές φορές ή την καρτέλα. Αυτό θα κάνει τον κώδικα ευκολότερο κατανοητό και τα λάθη θα είναι πολύ πιο εύκολο να βρεθούν. Επιπλέον, η αύξηση της λειτουργικότητας καθίσταται ευκολότερη.
- Εάν δεν γνωρίζετε πώς να γράφετε κώδικα για συναρτήσεις, διαβάστε το άρθρο Πώς να γράψετε μια απλή μακροεντολή στο Microsoft Excel.
- Μερικές φορές, οι συναρτήσεις δεν χρειάζονται όλες τις παραμέτρους για τον υπολογισμό του αποτελέσματος. Σε αυτήν την περίπτωση, μπορείτε να χρησιμοποιήσετε την προαιρετική λέξη -κλειδί πριν από το όνομα της παραμέτρου στην κεφαλίδα της λειτουργίας. Μπορείτε να χρησιμοποιήσετε τη συνάρτηση IsMissing (όνομα_παραμέτρου) στον κώδικά σας για να καθορίσετε εάν μια παράμετρος έχει εκχωρήσει μια τιμή ή όχι.
- Χρησιμοποιήστε αχρησιμοποίητα ονόματα ως συναρτήσεις στο Excel, έτσι ώστε καμία λειτουργία να μην αντικατασταθεί και να διαγραφεί.
- Το Excel έχει πολλές ενσωματωμένες συναρτήσεις και οι περισσότεροι υπολογισμοί μπορούν να γίνουν χρησιμοποιώντας αυτές τις ενσωματωμένες συναρτήσεις, είτε μεμονωμένα είτε ταυτόχρονα. Βεβαιωθείτε ότι έχετε ρίξει μια ματιά στη λίστα των διαθέσιμων λειτουργιών πριν ξεκινήσετε την κωδικοποίηση μόνοι σας. Η εκτέλεση μπορεί να γίνει γρηγορότερα εάν χρησιμοποιείτε ενσωματωμένες λειτουργίες.
Προειδοποίηση
- Για λόγους ασφαλείας, πολλοί άνθρωποι απενεργοποιούν τις μακροεντολές. Βεβαιωθείτε ότι έχετε ειδοποιήσει τους παραλήπτες του βιβλίου εργασίας σας ότι το υποβληθέν βιβλίο εργασίας έχει μακροεντολές και ότι αυτές οι μακροεντολές δεν θα βλάψουν τους υπολογιστές τους.
- Η συνάρτηση που χρησιμοποιείται σε αυτό το άρθρο δεν είναι ο καλύτερος τρόπος επίλυσης του σχετικού προβλήματος. Το παράδειγμα χρησιμοποιείται για να εξηγήσει τη χρήση δομών ελέγχου γλώσσας.
- Το VBA, όπως και άλλες γλώσσες, έχει αρκετές άλλες δομές ελέγχου εκτός από το Do, If και For. Η δομή που συζητείται εδώ περιγράφει μόνο τι μπορεί να γίνει στον πηγαίο κώδικα της συνάρτησης. Υπάρχουν πολλοί οδηγοί στο διαδίκτυο που μπορούν να χρησιμοποιηθούν για να σας βοηθήσουν να μάθετε VBA.
Αποτέλεσμα μαθήματος δημόσιας λειτουργίας (ως ακέραιος αριθμός) ως συμβολοσειρά
Αν τιμή> = 5 Τότε
Αποτελέσματα μαθημάτων = "Αποδεκτά"
Αλλού
Αποτελέσματα μαθημάτων = "Απορρίφθηκε"
Τέλος εαν
Λειτουργία Τέλους
Παρατηρήστε τα στοιχεία στο μπλοκ If code:
ΑΝ προϋπόθεση ΤΟΤΕ κωδικός ΑΛΛΟΣ κωδικός ΤΕΛΟΣ ΑΝ
Δημόσια συνάρτηση BilPrima (τιμή ως ακέραιος) Ως Boolean
Dim i As Integer
i = 2
BilPrima = Αλήθεια
Κάνω
Εάν τιμή / i = Int (τιμή / i) Τότε
BilPrima = Λάθος
Τέλος εαν
i = i + 1
Βρόχος Ενώ i <value And NumberPrima = True
Λειτουργία Τέλους
Κοιτάξτε ξανά τα στοιχεία:
ΚΑΝΤΕ ΚΩΔΙΚΟ LOOP ΕΝΩ/ΕΩΣ ΚΑΤΑΣΤΑΣΗΣ
Συντελεστής δημόσιας λειτουργίας (τιμή ως ακέραιος) Όσο μακρύς
Αμυδρά αποτελέσματα As Long
Dim i As Integer
Αν τιμή = 0 Τότε
αποτέλεσμα = 1
ElseIf value = 1 Τότε
αποτέλεσμα = 1
Αλλού
αποτέλεσμα = 1
Για i = 1 Για τιμή
αποτέλεσμα = αποτέλεσμα * i
Επόμενο
Τέλος εαν
Παραγοντικό = αποτέλεσμα
Λειτουργία Τέλους
Κοιτάξτε ξανά τα στοιχεία:
ΓΙΑ μεταβλητή = κάτω όριο ΠΡΩΤΟ ανώτατο όριο κωδικού ΕΠΟΜΕΝΟ
Το Επίσης, σημειώστε το πρόσθετο στοιχείο ElseIf στη δήλωση If, το οποίο σας επιτρέπει να προσθέσετε περισσότερες επιλογές στον κώδικα που εκτελείται. Τέλος, λάβετε υπόψη τη συνάρτηση "αποτέλεσμα" και τη μεταβλητή που έχει δηλωθεί ως Long. Ο τύπος δεδομένων Long επιτρέπει πολύ μεγαλύτερες τιμές από τον ακέραιο.
Παρακάτω εμφανίζεται ο κώδικας για μια συνάρτηση που μετατρέπει μικρούς αριθμούς σε λέξεις.
Βήμα 6. Επιστρέψτε στο βιβλίο εργασίας και χρησιμοποιήστε τη συνάρτηση γράφοντας το σύμβολο "ίσα" (=) ακολουθούμενο από το όνομα της συνάρτησης στο κελί
Γράψτε τις παρενθέσεις (“(“) μετά το όνομα της συνάρτησης, χρησιμοποιώντας το πρόσημο κώμα για να διαχωρίσετε τις παραμέτρους και να τελειώσετε με αγκύλες κλεισίματος (")"). Ως παράδειγμα:
= NumberToLetter (A4)
Το Μπορείτε επίσης να χρησιμοποιήσετε σπιτικούς τύπους αναζητώντας τους σε κατηγορίες Ορισμένο από τον χρήστη μέσα στην επιλογή Εισαγωγή τύπου. Απλώς κάνετε κλικ στο κουμπί Fx στα αριστερά της γραμμής τύπων. Υπάρχουν τρεις τύποι παραμέτρων σε συναρτήσεις: