/ / / User Defined Function στο Excel VBA

Λειτουργία καθορισμένη από το χρήστη στο Excel VBA

Παρακάτω θα δούμε ένα πρόγραμμα στο Excel VBA που δημιουργεί ένα Λειτουργία που καθορίζεται από το χρήστη. Το Excel διαθέτει μια μεγάλη συλλογή λειτουργιών. Στις περισσότερες περιπτώσεις αυτές οι λειτουργίες επαρκούν για να γίνει η δουλειά. Εάν όχι, μπορείτε να δημιουργήσετε τη δική σας λειτουργία που ονομάζεται Λειτουργία καθορισμένη από το χρήστη ή προσαρμοσμένη λειτουργία Excel. Μπορείτε να αποκτήσετε πρόσβαση σε μια συνάρτηση που καθορίζεται από το χρήστη, όπως ακριβώς και οποιαδήποτε άλλη λειτουργία του Excel.

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

Κατάσταση:

Λειτουργία καθορισμένη από το χρήστη στο Excel VBA

Οι λειτουργίες που ορίζονται από το χρήστη πρέπει να τοποθετηθούν σε μια ενότητα.

1. Ανοίξτε τον Επεξεργαστή Visual Basic και κάντε κλικ στην επιλογή Εισαγωγή, Ενότητα.

2. Προσθέστε την ακόλουθη γραμμή κώδικα:

Function SUMEVENNUMBERS(rng As Range)

Το όνομα της Λειτουργίας μας είναι SUMEVENNUMBERS. Το τμήμα μεταξύ των βραχιόνων σημαίνει ότι δίνουμε στο VBA ένα εύρος ως είσοδο. Ονομάζουμε rng γκάμα μας, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε όνομα.

3. Στη συνέχεια, δηλώνουμε ένα αντικείμενο Range και το ονομάζουμε cell.

Dim cell As Range

4. Θέλουμε να ελέγξουμε κάθε κύτταρο σε μια τυχαία επιλεγμένη περιοχή (αυτή η περιοχή μπορεί να είναι οποιουδήποτε μεγέθους). Στο Excel VBA, μπορείτε να χρησιμοποιήσετε το βρόχο For Each Next για αυτό. Προσθέστε τις ακόλουθες γραμμές κώδικα:

For Each cell In rng

Next cell

Σημείωση: η επιλογή κυψέλης επιλέγεται τυχαία εδώ, μπορείτε να χρησιμοποιήσετε οποιοδήποτε όνομα.

5. Στη συνέχεια, ελέγξουμε για κάθε τιμή σε αυτό το εύρος αν είναι ομοιόμορφη ή όχι. Χρησιμοποιούμε τον χειριστή Mod για αυτό. Ο χειριστής Mod δίνει το υπόλοιπο τμήμα. Έτσι 7 mod 2 θα δώσει 1. 7 διαιρείται με 2 (3 φορές) για να δώσει ένα υπόλοιπο 1. Έχοντας πει αυτό, είναι εύκολο να ελέγξετε αν ένας αριθμός είναι ακόμη ή όχι. Μόνο εάν το υπόλοιπο ενός αριθμού διαιρούμενο με το 2 είναι 0, ο αριθμός είναι ομοιόμορφος. 8 mod 2 δίνει 0, 8 διαιρείται με 2 ακριβώς 4 φορές, και ως εκ τούτου 8 είναι ομοιόμορφο. Προσθέστε την ακόλουθη πρόταση If στον βρόχο For Each Next.

If cell.Value Mod 2 = 0 Then

End If

6. Μόνο εάν αυτή η δήλωση είναι αληθής, προσθέτουμε την τιμή στο SUMEVENNUMBERS. Προσθέστε την ακόλουθη γραμμή κώδικα στην εντολή If.

SUMEVENNUMBERS = SUMEVENNUMBERS + cell.Value

7. Μην ξεχάσετε να τερματίσετε τη λειτουργία (εκτός του βρόχου).

End Function

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

Αποτέλεσμα:

Καθορισμένο από το χρήστη αποτέλεσμα λειτουργίας

Μπράβο! Αυτό είναι πόσο εύκολα είναι οι λειτουργίες που ορίζονται από το χρήστη στο Excel VBA. Σημείωση: αυτή η λειτουργία είναι διαθέσιμη μόνο σε αυτό το βιβλίο εργασίας.

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