Πώς να κάνετε μορφοποίηση υπό όρους χρησιμοποιώντας VBA στο Microsoft Excel

Anonim

Ας ζωγραφίσουμε έναν πίνακα Monalisa και αφήνουμε τον Πικάσο πίσω χρησιμοποιώντας VBA. Έτοιμο, Ρυθμίστε…

Περίμενε! Περίμενε! Κρατήστε τα άλογά σας. Απλώς θα χρησιμοποιήσουμε το VBA για να κάνουμε μορφοποίηση υπό όρους και είναι πιο εύκολο από έναν πίνακα που; διαμορφωμένο πουλί.

Η γενική σύνταξη της μορφοποίησης υπό όρους VBA

Εάν κατάσταση από Range (range) .Interior.ColorIndex = 1-56

Δώστε τον έλεγχο της κατάστασής σας στην κατάσταση και στη συνέχεια μορφοποιήστε το εύρος σας χρησιμοποιώντας την ιδιότητα .iteriour.colorindex του αντικειμένου Range. Ο χρωματικός δείκτης έχει 56 χρώματα. Πηγαίνετε να παίξετε Holi μαζί τους και εξερευνήστε ποιος αριθμός κρατά ποιο χρώμα.
Τώρα ας το καταλάβουμε με ένα παράδειγμα

Παράδειγμα: Κωδικός VBA για διαμόρφωση κελιών υπό όρους

Αυτό λοιπόν είναι το σενάριο, έχουμε μια λίστα με τυχαία άτομα με την ηλικία και την ηλικιακή ομάδα τους.
Πόσο εύκολο θα ήταν αν μπορούσαμε να πούμε στην ηλικιακή ομάδα ένα άτομο κοιτάζοντας μόνο τα ονόματά τους.
Τώρα για να το κάνω αυτό, θέλω τη μορφή VBA Όνομα RED αν είναι ενήλικας, ΚΙΤΡΙΝΟ εάν είναι έφηβος και ΠΡΑΣΙΝΟΣ αν είναι ΠΑΙΔΙ και τίποτα αν το κελί είναι κενό.

Sub FormatUsingVBA () Dim rng As Range Dim lastRow As Long lastRow = Cells (Rows.Count, 3). End (xlUp). Row Set rng = Range ("C2: C" & lastRow) Για κάθε κελί σε rng Αν κελί Value2 = "Adult" Then Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Στη συνέχεια Range (cell.Address). Offset (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Then Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 6 Alse Range (cell.Address). Offset (0, -2). Interior.ColorIndex = 0 Τέλος αν Επόμενο κελί Τέλος υπο

Για να εκτελέσω αυτόν τον κώδικα απευθείας από το φύλλο, έχω σχεδιάσει ένα κουμπί στο ίδιο φύλλο και του έχω εκχωρήσει αυτήν τη μακροεντολή. Τώρα, κάθε φορά που θα κάνετε κλικ στο κουμπί "Μορφοποίηση" ο κωδικός σας θα εκτελείται και θα ενημερώνει τα κελιά ονομάτων με χρώμα ανάλογα με την ηλικιακή ομάδα τους. Πως? Ας ανακαλύψουμε.

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

Dim rng As RangeDim lastRow As Long Αυτές οι δύο γραμμές είναι μεταβλητές δηλώσεις. rng για το εύρος που περιέχει την ηλικιακή ομάδα και το lastRow για να λάβετε τον τελευταίο αριθμό μη κενής σειράς. 
lastRow = Κελιά (Rows.Count, 3). End (xlUp). RowThis γραμμή επιστρέφει τον τελευταίο αριθμό σειράς στη lastRow Variable.
Ορισμός rng = Εύρος ("C2: C" & lastRow) Αυτή η γραμμή ορίζει το εύρος ξεκινώντας από το C2 και μέχρι την τελευταία σειρά. Κάνει τον κώδικα σας δυναμικό. Προσθέτετε νέες σειρές στα δεδομένα σας και θα εντοπίσουν και θα αποθηκευτούν σε νέο εύρος στη μεταβλητή rng.
Για κάθε κελί σε rng If cell.Value2 = "Ενήλικος" Στη συνέχεια Εύρος (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Στη συνέχεια Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Στη συνέχεια Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Μετατόπιση (0, -2) .Interior.ColorIndex = 0 Τέλος αν Επόμενο κελί 

Αυτό είναι το κύριο τμήμα.

Για κάθε κελί σε rng 

Η πρώτη γραμμή εκτελεί τον βρόχο σε όλα τα κελιά της περιοχής σας. Εάν cell.Value2 = "Ενήλικας" Τότε
Η επόμενη γραμμή είναι ένας έλεγχος κατάστασης. Ελέγχει εάν η τρέχουσα τιμή κελιού είναι Ενηλίκων ή όχι.
Εάν ναι, τότε εκτελείται η επόμενη γραμμή, αλλιώς μεταβαίνει στην επόμενη αν.
Τώρα αν η συνθήκη IF επιστρέψει TRUE, τότε αυτή η γραμμή ορίζει το χρώμα του κελιού στο ColorIndex 3 που είναι για το RED.

Ομοίως, οι ακόλουθες προτάσεις IF εκτελούνται και ενεργούν όπως καθορίζεται.

Έτσι, ναι, μπορείτε να μορφοποιήσετε υπό όρους εύρη χρησιμοποιώντας VBA. Η εσωτερική μέθοδος του αντικειμένου Range ελέγχει πολλές άλλες ιδιότητες για μορφοποίηση. Θα πρέπει να παίζετε μαζί τους, δεν θα κάνει κανένα κακό, αλλά θα μάθετε σίγουρα. Και αν αντιμετωπίζετε κάποια δυσκολία από αυτήν για την οποία είμαι εδώ. Κάντε τις ερωτήσεις σας στην ενότητα σχολίων.

Λήψη αρχείου

Μορφοποίηση υπό όρους χρησιμοποιώντας VBA στο Microsoft Excel

Δημοφιλή άρθρα:

50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας

Πώς να χρησιμοποιήσετε τη συνάρτηση VLOOKUP στο Excel

Πώς να χρησιμοποιήσετε τη συνάρτηση COUNTIF στο Excel

Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel