Σύγκριση σειρών στο Excel VBA - Εύκολες μακροεντολές Excel

Πίνακας περιεχομένων

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

Κατάσταση:

Σημείωση: η μόνη μοναδική τιμή σε αυτό το παράδειγμα είναι η 3, καθώς όλες οι άλλες τιμές εμφανίζονται σε τουλάχιστον μία ακόμη περιοχή. Για να επιλέξετε Εύρος ("B2: B7, D3: E6, D8: E9"), κρατήστε πατημένο το πλήκτρο Ctrl και επιλέξτε κάθε περιοχή.

Τοποθετήστε ένα κουμπί εντολών στο φύλλο εργασίας σας και προσθέστε τις ακόλουθες γραμμές κώδικα:

1. Αρχικά, δηλώνουμε τέσσερα αντικείμενα εύρους και δύο μεταβλητές τύπου Ακέραιος.

Dim rangeToUse As Range, singleArea As Range, cell1 As Range, cell2 As Range, i As Integer, j As Integer

2. Αρχικοποιούμε το εύρος αντικειμένου RangeToUse με το επιλεγμένο εύρος.

Ορισμός εύρουςToUse = Επιλογή

3. Προσθέστε τη γραμμή που αλλάζει το χρώμα φόντου όλων των κελιών στο "No Fill". Προσθέστε επίσης τη γραμμή που καταργεί τα όρια όλων των κελιών.

Cells.Interior.ColorIndex = 0
Cells.Borders.LineStyle = xlNone

4. Ενημερώστε τον χρήστη όταν επιλέγει μόνο μία περιοχή.

Εάν Selection.Areas.Count <= 1 Τότε
MsgBox "Επιλέξτε περισσότερες από μία περιοχές."
Αλλού
Τέλος εαν

Οι επόμενες γραμμές κώδικα (στα 5, 6 και 7) πρέπει να προστεθούν μεταξύ του Else και του End If.

5. Χρωματίστε τα κελιά των επιλεγμένων περιοχών.

rangeToUse.Interior.ColorIndex = 38

6. Περιορίστε κάθε περιοχή.

Για κάθε singleArea In rangeToUse.Areas
singleArea.BorderAround ColorIndex: = 1, Βάρος: = xlThin
Επόμενο singleArea

7. Το υπόλοιπο αυτού του προγράμματος φαίνεται ως εξής.

Για i = 1 To rangeToUse.Areas.Count
Για j = i + 1 To rangeToUse.Areas.Count
Για κάθε κελί1 Σε εμβέλειαToUse.Areas (i)
Για κάθε κελί 2 σε εύροςToUse.Areas (j)
Εάν cell1.Value = cell2.Value Τότε
cell1.Interior.ColorIndex = 0
cell2.Interior.ColorIndex = 0
Τέλος εαν
Επόμενο κελί2
Επόμενο κελί 1
Επόμενο j
Επόμενο i

Επεξήγηση: αυτό μπορεί να φαίνεται κάπως συντριπτικό, αλλά δεν είναι τόσο δύσκολο. rangeToUse.Areas.Count ισούται με 3, οπότε οι δύο πρώτες γραμμές κώδικα μειώνονται σε Για i = 1 έως 3 και Για j = i + 1 έως 3. Για i = 1, j = 2, το Excel VBA συγκρίνει όλες τις τιμές της πρώτης περιοχής με όλες τις τιμές της δεύτερης περιοχής. Για i = 1, j = 3, το Excel VBA συγκρίνει όλες τις τιμές της πρώτης περιοχής με όλες τις τιμές της τρίτης περιοχής. Για i = 2, j = 3, το Excel VBA συγκρίνει όλες τις τιμές της δεύτερης περιοχής με όλες τις τιμές της τρίτης περιοχής. Εάν οι τιμές είναι ίδιες, ορίζει το χρώμα φόντου και των δύο κελιών σε "Χωρίς γέμισμα", επειδή δεν είναι μοναδικά.

Αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολών στο φύλλο:

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave