Εύρεση μοναδικών τιμών χρησιμοποιώντας VBA στο Microsoft Excel

Anonim

Σε αυτό το άρθρο, θα δημιουργήσουμε προσαρμοσμένη συνάρτηση για να βρούμε μοναδικές τιμές από το καθορισμένο εύρος.

Τα ακατέργαστα δεδομένα για αυτό το παράδειγμα αποτελούνται από διπλές καταχωρίσεις ονόματος χώρας στο εύρος A8: A21.

Λογική εξήγηση

Δημιουργήσαμε μια προσαρμοσμένη συνάρτηση "UniqueItem" για να εξαγάγουμε τις μοναδικές τιμές από το εύρος. Αυτή η συνάρτηση λαμβάνει δύο παραμέτρους ως είσοδο. Η πρώτη παράμετρος είναι το εύρος που αποτελείται από διπλότυπα δεδομένα και η δεύτερη παράμετρος καθορίζει τον αριθμό ευρετηρίου μιας μοναδικής τιμής στη μοναδική συλλογή.

Αυτή η συνάρτηση επιστρέφει τη μοναδική τιμή από το εύρος με βάση τον αριθμό ευρετηρίου. Η δεύτερη παράμετρος είναι μια προαιρετική παράμετρος, εάν η δεύτερη παράμετρος δεν έχει καθοριστεί, τότε η συνάρτηση επιστρέφει τον αριθμό της μοναδικής τιμής στο καθορισμένο εύρος.

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

Επεξήγηση κώδικα

Στο Σφάλμα Συνέχιση Επόμενο

Για κάθε CellValue InputRange

CUnique.Add CellValue.Value, CStr (CellValue.Value)

Επόμενο

Σφάλμα GoTo 0

Ο παραπάνω κώδικας χρησιμοποιείται για τη δημιουργία αντικειμένου συλλογής που θα περιέχει μια μοναδική τιμή από το καθορισμένο εύρος. Οι δηλώσεις "On Error" χρησιμοποιούνται για τον χειρισμό σφαλμάτων, καθώς όταν ο κώδικας προσπαθεί να βάλει διπλές τιμές στη συλλογή, η συλλογή θα δημιουργήσει σφάλμα.

Ακολουθήστε παρακάτω για τον κωδικό

 Option Explicit Function UniqueItem (InputRange As Range, Optional ItemNo As Integer = 0) As Variant Dim CellValue As Range Dim CUnique As New Collection Dim UCount As Integer On Error Resume Next (Προσθήκη μοναδικών στοιχείων στη συλλογή από καθορισμένο εύρος για κάθε CellValue InputRange CUnique) .Προσθήκη CellValue.Value, CStr (CellValue.Value) Next On Error GoTo 0 'Καταμέτρηση μοναδικού στοιχείου στη συλλογή UCount = CUnique.Count If ItemNo = 0 Στη συνέχεια' Επιστροφή του αριθμού μοναδικού στοιχείου UniqueItem = UCount ElseIf Στοιχείο Όχι <= UCount Στη συνέχεια, «Επιστροφή μοναδικής τιμής με βάση τον αριθμό στοιχείου UniqueItem = CUnique (ItemNo) Else» Επιστροφή της τελευταίας μοναδικής τιμής UniqueItem = CUnique (UCount) Λειτουργία τερματισμού αν τερματισμού 

Αν σας άρεσε αυτό το blog, μοιραστείτε το με τους φίλους σας στο Facebook. Επίσης, μπορείτε να μας ακολουθήσετε στο Twitter και το Facebook.

Θα θέλαμε πολύ να σας ακούσουμε, ενημερώστε μας πώς μπορούμε να βελτιώσουμε το έργο μας και να το κάνουμε καλύτερο για εσάς. Γράψτε μας στον ιστότοπο email