Πίνακας περιεχομένων
Σήμερα θα συνεχίσουμε να εξερευνούμε τις προσαρμοσμένες συναρτήσεις του Excel. Καθώς γνωρίζετε ήδη πώς να δημιουργείτε UDFs (και, ελπίζω, έχετε επίσης δοκιμάσει να τις εφαρμόσετε στο Excel σας), ας εμβαθύνουμε λίγο περισσότερο και ας μάθουμε πώς να χρησιμοποιείτε και να αποθηκεύετε τις συναρτήσεις που ορίζονται από το χρήστη στο Excel.
Επιπλέον, θα σας δείξουμε πώς να αποθηκεύετε εύκολα τις συναρτήσεις σας σε ένα αρχείο πρόσθετων εφαρμογών του Excel για να τις χρησιμοποιήσετε αργότερα με λίγα κλικ.
Οπότε, θα μιλήσουμε για τα εξής:
Διαφορετικοί τρόποι χρήσης του UDF στο Excel
Χρήση UDF σε φύλλα εργασίας
Αφού βεβαιωθείτε ότι τα UDF λειτουργούν σωστά, μπορείτε να τα χρησιμοποιήσετε σε τύπους του Excel ή σε κώδικα VBA.
Μπορείτε να εφαρμόσετε προσαρμοσμένες συναρτήσεις σε ένα βιβλίο εργασίας του Excel με τον ίδιο τρόπο που χρησιμοποιείτε τις κανονικές συναρτήσεις. Για παράδειγμα, γράψτε σε ένα κελί τον παρακάτω τύπο:
= GetMaxBetween(A1:A6,10,50)
Η UDF μπορεί να χρησιμοποιηθεί σε συνδυασμό με κανονικές συναρτήσεις. Για παράδειγμα, προσθέστε κείμενο στην υπολογιζόμενη μέγιστη τιμή:
= CONCATENATE("Η μέγιστη τιμή μεταξύ 10 και 50 είναι ", GetMaxBetween(A1: A6,10,50))
Μπορείτε να δείτε το αποτέλεσμα στο παρακάτω στιγμιότυπο οθόνης:
Μπορείτε να βρείτε τον αριθμό που είναι και ο μέγιστος και βρίσκεται στο εύρος από 10 έως 50.
Ας ελέγξουμε έναν άλλο τύπο:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), η
Η προσαρμοσμένη λειτουργία GetMaxBetween ελέγχει την περιοχή B2:B9 και βρίσκει τον μέγιστο αριθμό μεταξύ 10 και 50. Στη συνέχεια, χρησιμοποιώντας INDEX + MATCH, παίρνουμε το όνομα του προϊόντος που ταιριάζει με αυτή τη μέγιστη τιμή:
Όπως μπορείτε να δείτε, η χρήση των προσαρμοσμένων συναρτήσεων δεν διαφέρει πολύ από τις κανονικές συναρτήσεις του Excel.
Όταν το κάνετε αυτό, να θυμάστε ότι μια συνάρτηση που ορίζεται από το χρήστη μπορεί να επιστρέψει μόνο μια τιμή, αλλά δεν μπορεί να εκτελέσει άλλες ενέργειες. Διαβάστε περισσότερα σχετικά με τους περιορισμούς των συναρτήσεων που ορίζονται από το χρήστη.
Χρήση UDF σε διαδικασίες και συναρτήσεις της VBA
Τα UDF μπορούν επίσης να χρησιμοποιηθούν σε μακροεντολές VBA. Παρακάτω μπορείτε να δείτε τον κώδικα της μακροεντολής που αναζητά τη μέγιστη τιμή στο εύρος από 10 έως 50 στη στήλη που περιέχει το ενεργό κελί.
Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range(Cells(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Cells(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells, 10, 50) i = Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubΟ κώδικας της μακροεντολής περιέχει την προσαρμοσμένη συνάρτηση
GetMaxBetween(.Cells, 10, 50)
Βρίσκει τη μέγιστη τιμή στην ενεργή στήλη. Αυτή η τιμή θα επισημανθεί στη συνέχεια. Μπορείτε να δείτε το αποτέλεσμα της μακροεντολής στο παρακάτω στιγμιότυπο οθόνης.
Μια προσαρμοσμένη συνάρτηση μπορεί επίσης να χρησιμοποιηθεί μέσα σε μια άλλη προσαρμοσμένη συνάρτηση. Νωρίτερα στο ιστολόγιό μας, εξετάσαμε το πρόβλημα της μετατροπής ενός αριθμού σε κείμενο χρησιμοποιώντας την προσαρμοσμένη συνάρτηση με το όνομα SpellNumber .
Με τη βοήθειά του, μπορούμε να πάρουμε τη μέγιστη τιμή από το εύρος και να την καταγράψουμε αμέσως ως κείμενο.
Για να το κάνουμε αυτό, θα δημιουργήσουμε μια νέα προσαρμοσμένη συνάρτηση στην οποία θα χρησιμοποιήσουμε τις συναρτήσεις GetMaxBetween και SpellNumber που μας είναι ήδη οικείες.
Function SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum, MaxNum)) End FunctionΌπως μπορείτε να δείτε, η GetMaxBetween συνάρτηση είναι ένα όρισμα σε μια άλλη προσαρμοσμένη συνάρτηση, SpellNumber Καθορίζει τη μέγιστη τιμή, όπως έχουμε κάνει πολλές φορές στο παρελθόν. Ο αριθμός αυτός μετατρέπεται στη συνέχεια σε κείμενο.
Στο παραπάνω στιγμιότυπο οθόνης, μπορείτε να δείτε πώς το SpellGetMaxBetween βρίσκει τον μέγιστο αριθμό μεταξύ 100 και 500 και στη συνέχεια τον μετατρέπει σε κείμενο.
Κλήση UDF από άλλα βιβλία εργασίας
Εάν έχετε δημιουργήσει UDF στο βιβλίο εργασίας σας, αυτό, δυστυχώς, δεν σημαίνει ότι δεν θα αντιμετωπίσετε κανένα πρόβλημα.
Σύμφωνα με την εμπειρία μου, οι περισσότεροι χρήστες αργά ή γρήγορα δημιουργούν την προσωπική τους συλλογή μακροεντολών και προσαρμοσμένων συναρτήσεων για την αυτοματοποίηση μεμονωμένων διαδικασιών και υπολογισμών. Και εδώ προκύπτει το πρόβλημα - ο κώδικας των συναρτήσεων που ορίζει ο χρήστης στη Visual Basic πρέπει να αποθηκευτεί κάπου προκειμένου να χρησιμοποιηθεί αργότερα στην εργασία.
Για να εφαρμόσετε την προσαρμοσμένη συνάρτηση, το βιβλίο εργασίας στο οποίο την αποθηκεύσατε πρέπει να είναι ανοιχτό στο Excel σας. Εάν δεν είναι, θα λάβετε το σφάλμα #NAME! όταν προσπαθείτε να τη χρησιμοποιήσετε. Αυτό το σφάλμα υποδεικνύει ότι το Excel δεν γνωρίζει το όνομα της συνάρτησης που θέλετε να χρησιμοποιήσετε στον τύπο.
Ας ρίξουμε μια ματιά στους τρόπους με τους οποίους μπορείτε να χρησιμοποιήσετε τις προσαρμοσμένες συναρτήσεις που δημιουργείτε.
Μέθοδος 1. Προσθέστε το όνομα του βιβλίου εργασίας στη συνάρτηση
Μπορείτε να καθορίσετε το όνομα του βιβλίου εργασίας στο οποίο βρίσκεται πριν από το όνομα της συνάρτησης. Για παράδειγμα, αν αποθηκεύσατε μια προσαρμοσμένη συνάρτηση GetMaxBetween() σε ένα βιβλίο εργασίας με όνομα My_Functions.xlsm , τότε πρέπει να εισαγάγετε τον ακόλουθο τύπο:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
Μέθοδος 2. Αποθήκευση όλων των UDF σε ένα κοινό αρχείο
Αποθηκεύστε όλες τις προσαρμοσμένες συναρτήσεις σε ένα ειδικό βιβλίο εργασίας (για παράδειγμα, My_Functions.xlsm ) και αντιγράψτε την επιθυμητή συνάρτηση από αυτό στο τρέχον βιβλίο εργασίας, εάν είναι απαραίτητο.
Κάθε φορά που δημιουργείτε μια νέα προσαρμοσμένη συνάρτηση, πρέπει να αντιγράφετε τον κώδικά της στο βιβλίο εργασίας στο οποίο θα τη χρησιμοποιήσετε. Με αυτή τη μέθοδο, μπορεί να προκύψουν αρκετές δυσχέρειες:
- Αν υπάρχουν πολλά αρχεία εργασίας και η συνάρτηση χρειάζεται παντού, τότε ο κώδικας θα πρέπει να αντιγραφεί σε κάθε βιβλίο.
- Θυμηθείτε να αποθηκεύσετε το βιβλίο εργασίας σε μορφή με δυνατότητα μακροεντολών (.xlsm ή .xlsb).
- Κατά το άνοιγμα ενός τέτοιου αρχείου, η προστασία κατά των μακροεντολών θα εμφανίζει κάθε φορά μια προειδοποίηση, η οποία πρέπει να επιβεβαιωθεί. Πολλοί χρήστες τρομάζουν όταν βλέπουν μια προειδοποίηση με κίτρινη μπάρα που τους ζητά να ενεργοποιήσουν τις μακροεντολές. Για να μην βλέπετε αυτό το μήνυμα, πρέπει να απενεργοποιήσετε εντελώς την προστασία του Excel. Ωστόσο, αυτό μπορεί να μην είναι πάντα σωστό και ασφαλές.
Νομίζω ότι θα συμφωνήσετε μαζί μου ότι κάθε φορά το άνοιγμα ενός αρχείου και η αντιγραφή του κώδικα των συναρτήσεων που ορίζονται από τον χρήστη από αυτό ή η αναγραφή του ονόματος αυτού του αρχείου σε έναν τύπο δεν είναι η καλύτερη λύση.Έτσι, καταλήξαμε στον τρίτο τρόπο.
Μέθοδος 3. Δημιουργήστε ένα αρχείο προσθήκης του Excel
Νομίζω ότι ο καλύτερος τρόπος είναι να αποθηκεύετε συχνά χρησιμοποιούμενες προσαρμοσμένες συναρτήσεις σε ένα αρχείο πρόσθετου του Excel. Πλεονεκτήματα της χρήσης του πρόσθετου:
- Χρειάζεται να συνδέσετε το πρόσθετο στο Excel μόνο μία φορά. Μετά από αυτό, μπορείτε να χρησιμοποιήσετε τις διαδικασίες και τις λειτουργίες του σε οποιοδήποτε αρχείο σε αυτόν τον υπολογιστή. Δεν χρειάζεται να αποθηκεύσετε τα βιβλία εργασίας σας σε μορφές .xlsm και .xlsb, καθώς ο πηγαίος κώδικας δεν θα αποθηκευτεί σε αυτά αλλά στο αρχείο του πρόσθετου.
- Δεν θα σας ενοχλεί πλέον η προστασία μακροεντολών, καθώς τα πρόσθετα αναφέρονται πάντα σε αξιόπιστες πηγές.
- Ένα πρόσθετο είναι ένα ξεχωριστό αρχείο. Είναι εύκολο να το μεταφέρετε από υπολογιστή σε υπολογιστή, να το μοιραστείτε με συναδέλφους.
Θα μιλήσουμε περισσότερο για τη δημιουργία και τη χρήση ενός πρόσθετου αργότερα.
Χρήση πρόσθετων για την αποθήκευση προσαρμοσμένων λειτουργιών
Πώς μπορώ να δημιουργήσω το δικό μου πρόσθετο; Ας δούμε αυτή τη διαδικασία βήμα προς βήμα.
Βήμα 1. Δημιουργία του αρχείου πρόσθετου προγράμματος
Ανοίξτε το Microsoft Excel, δημιουργήστε ένα νέο βιβλίο εργασίας και αποθηκεύστε το με οποιοδήποτε κατάλληλο όνομα (π.χ. My_Functions) σε μορφή πρόσθετου. Για να το κάνετε αυτό, χρησιμοποιήστε το μενού Αρχείο - Αποθήκευση ως ή το πλήκτρο F12. Βεβαιωθείτε ότι έχετε καθορίσει τον τύπο αρχείου Πρόσθετο του Excel :
Το πρόσθετό σας θα έχει την επέκταση .xlam.
Συμβουλή. Λάβετε υπόψη ότι από προεπιλογή το Excel αποθηκεύει τα πρόσθετα στο C:\\Users\[Όνομα_σας]\AppData\Roaming\Microsoft\AddIns φάκελο. Σας συνιστώ να αποδεχτείτε την προεπιλεγμένη θέση. Αν θέλετε, μπορείτε να καθορίσετε οποιονδήποτε άλλο φάκελο. Αλλά τότε, όταν συνδέετε το πρόσθετο, θα πρέπει να βρείτε και να καθορίσετε τη νέα του θέση χειροκίνητα. Αν το αποθηκεύσετε στον προεπιλεγμένο φάκελο, δεν χρειάζεται να αναζητήσετε το πρόσθετο στον υπολογιστή σας. Το Excel θα το καταχωρίσει αυτόματα.
Βήμα 2. Συνδέστε το πρόσθετο αρχείο
Τώρα το πρόσθετο που δημιουργήσαμε πρέπει να συνδεθεί με το Excel. Τότε θα φορτωθεί αυτόματα κατά την εκκίνηση του προγράμματος. Για να το κάνετε αυτό, χρησιμοποιήστε το μενού Αρχείο - Επιλογές - Προσθήκες Βεβαιωθείτε ότι Πρόσθετα του Excel είναι επιλεγμένο στο Διαχείριση Κάντε κλικ στο πεδίο Go στο κάτω μέρος του παραθύρου. Στο παράθυρο που εμφανίζεται, σημειώστε το πρόσθετο My_Functions. Αν δεν το βλέπετε στη λίστα, κάντε κλικ στο κουμπί Περιήγηση στο και αναζητήστε τη θέση του αρχείου του πρόσθετου.
Εάν χρησιμοποιείτε ένα πρόσθετο για την αποθήκευση προσαρμοσμένων λειτουργιών, υπάρχει ένας απλός κανόνας που πρέπει να ακολουθήσετε. Εάν μεταφέρετε το βιβλίο εργασίας σε άλλους ανθρώπους, φροντίστε να μεταφέρετε επίσης ένα αντίγραφο του πρόσθετου που περιέχει τη λειτουργικότητα που θέλετε. Θα πρέπει να το συνδέσετε με τον ίδιο τρόπο που κάνατε τώρα.
Βήμα 3. Προσθήκη προσαρμοσμένων συναρτήσεων και μακροεντολών στο πρόσθετο
Το πρόσθετό μας είναι συνδεδεμένο με το Excel, αλλά δεν έχει ακόμη καμία λειτουργικότητα. Για να προσθέσετε νέες μονάδες UDF σε αυτό, ανοίξτε τον επεξεργαστή Visual Basic πατώντας Alt + F11 . Στη συνέχεια, μπορείτε να προσθέσετε νέες μονάδες με κώδικα VBA, όπως περιγράφεται στο σεμινάριο Δημιουργία UDFs.
Επιλέξτε το αρχείο του πρόσθετου ( My_Finctions.xlam ) στο παράθυρο VBAProject. Χρησιμοποιήστε το κουμπί Εισαγωγή - Ενότητα για να προσθέσετε μια προσαρμοσμένη ενότητα. Πρέπει να γράψετε προσαρμοσμένες συναρτήσεις σε αυτήν.
Μπορείτε είτε να πληκτρολογήσετε χειροκίνητα τον κώδικα μιας συνάρτησης που ορίζεται από τον χρήστη είτε να τον αντιγράψετε από κάπου.
Αυτό ήταν όλο. Τώρα έχετε δημιουργήσει το δικό σας πρόσθετο, το προσθέσατε στο Excel και μπορείτε να χρησιμοποιήσετε το UDF σε αυτό. Εάν θέλετε να χρησιμοποιήσετε περισσότερα UDF, απλώς γράψτε τον κώδικα στην ενότητα πρόσθετου στον επεξεργαστή VBA και αποθηκεύστε τον.
Αυτά για σήμερα. Μάθαμε πώς να χρησιμοποιείτε τις συναρτήσεις που ορίζονται από τον χρήστη στο βιβλίο εργασίας σας. Ελπίζουμε πραγματικά να βρείτε αυτές τις οδηγίες χρήσιμες. Αν έχετε οποιεσδήποτε ερωτήσεις, γράψτε στα σχόλια αυτού του άρθρου.