Προσπαθήσατε ποτέ να κατανοήσετε ένα άγνωστο (και περίπλοκο) βιβλίο εργασίας του Excel; Θα ήταν χρήσιμο να δείτε έναν χάρτη που παρέχει μια επισκόπηση του ποια κελιά περιέχουν σταθερές και ποια κελιά περιέχουν τιμές.
Μπορείτε να δημιουργήσετε ένα βοηθητικό πρόγραμμα VBA που δημιουργεί έναν χάρτη του ενεργού φύλλου εργασίας. Ο χάρτης δημιουργείται σε ένα νέο φύλλο εργασίας και αποτελείται από χρωματικά κωδικοποιημένα κελιά που σας επιτρέπουν να αναγνωρίζετε γρήγορα τιμές, κείμενο και τύπους.
Παρακάτω, βλέπετε ένα παράδειγμα τέτοιου χάρτη. Τα κελιά που περιέχουν κείμενο είναι πράσινα, αυτά που περιέχουν μια αριθμητική τιμή είναι κίτρινα και τα κελιά που περιέχουν τύπους είναι κόκκινα. Ένας τέτοιος χάρτης μπορεί να σας βοηθήσει να εντοπίσετε πιθανά σφάλματα. Για παράδειγμα, εάν ένας τύπος σε ένα μπλοκ τύπων έχει αντικατασταθεί από μια τιμή, αυτό το κελί θα ξεχωρίζει στην προβολή χάρτη (όπως στο κελί Q11 στο παράδειγμα).
Ο κώδικας VBA QuickMap
Η διαδικασία VBA που δημιουργεί τον χάρτη του φύλλου εργασίας παρατίθεται παρακάτω. Εάν θέλετε να χρησιμοποιήσετε αυτό το βοηθητικό πρόγραμμα, απλώς αντιγράψτε τον κώδικα και επικολλήστε τον σε μια μονάδα VBA. Στη συνέχεια, ενεργοποιήστε ένα φύλλο εργασίας και εκτελέστε την υπορουτίνα QuickMap.
Sub QuickMap()
Dim FormulaCells As Variant
Dim TextCells As Variant
Dim NumberCells As Variant
Dim Area as Range
Αν TypeName(ActiveSheet) <> "Worksheet" Τότε βγείτε από το Sub
Δημιουργήστε μεταβλητές αντικειμένων για υποσύνολα κελιών
Σφάλμα Συνέχιση Επόμενο
Ορισμός FormulaCells = Range("A1").SpecialCells _
(xlFormulas, xlNumbers + xlTextValues + xlLogical)
Ορισμός TextCells = Range("A1").SpecialCells(xlConstants, xlTextValues)
Ορισμός NumberCells = Range("A1").SpecialCells(xlConstants, xlNumbers)
Στο Σφάλμα Μετάβαση στο 0
Προσθέστε ένα νέο φύλλο και μορφοποιήστε το
Φύλλα.Προσθήκη
Με κύτταρα
.Πλάτος στήλης = 2
.Γραμματοσειρά.Μέγεθος = 8
.HorizontalAlignment = xlCenter
Τέλος με
Application.ScreenUpdating = False
Κάντε τα κελιά τύπου
Αν δεν είναι κενό(FormulaCells) Τότε
Για κάθε περιοχή στο FormulaCells.Areas
Με ActiveSheet.Range(Περιοχή.Διεύθυνση)
.Τιμή = "F"
.Interior.ColorIndex = 3
Τέλος με
Επόμενη Περιοχή
Τέλος εαν
Κάντε τα κελιά κειμένου
Εάν δεν είναι κενό (TextCells) Τότε
Για κάθε περιοχή στο TextCells.Areas
Με ActiveSheet.Range(Περιοχή.Διεύθυνση)
.Τιμή = "T"
.Interior.ColorIndex = 4
Τέλος με
Επόμενη Περιοχή
Τέλος εαν
Κάντε τα αριθμητικά κελιά
Αν δεν είναι κενό(αριθμητικά κελιά) Τότε
Για κάθε περιοχή σε NumberCells.Areas
Με ActiveSheet.Range(Περιοχή.Διεύθυνση)
.Τιμή = "N"
.Interior.ColorIndex = 6
Τέλος με
Επόμενη Περιοχή
Τέλος εαν
End Sub
Πως δουλεύει
Η διαδικασία ελέγχει πρώτα για να βεβαιωθεί ότι το ενεργό φύλλο είναι φύλλο εργασίας. Εάν δεν είναι, υπάρχει μια γρήγορη έξοδος χωρίς περαιτέρω ενέργειες. Όταν το ενεργό φύλλο είναι φύλλο εργασίας, η διαδικασία δημιουργεί τρεις μεταβλητές αντικειμένων χρησιμοποιώντας τη μέθοδο SpecialCells για τον προσδιορισμό των διαφόρων τύπων κελιών. Η μέθοδος SpecialCells είναι πολύ χρήσιμη. Εάν δεν το γνωρίζετε, ελέγξτε το στο ηλεκτρονικό αρχείο βοήθειας του Excel. Παρατηρήστε τη χρήση του On Error Resume Next. Αυτό γίνεται για να αποφευχθεί το σφάλμα που προκύπτει εάν κανένα κελί δεν πληροί τις προϋποθέσεις — για παράδειγμα, εάν το φύλλο εργασίας δεν έχει τύπους.
Στη συνέχεια, η διαδικασία προσθέτει ένα νέο φύλλο εργασίας, μειώνει το πλάτος του κελιού και ορίζει την οριζόντια στοίχιση στο κέντρο. Αυτό το βήμα είναι καλλυντικό. Το δευτερεύον στη συνέχεια απενεργοποιεί την ενημέρωση οθόνης για να επιταχύνει λίγο τα πράγματα.
Τα επόμενα τρία μπλοκ κώδικα επεξεργάζονται τα κελιά. Εάν κανένα κελί δεν πληροί τις προϋποθέσεις, η μεταβλητή αντικειμένου είναι Empty, οπότε οι δευτερεύουσες δοκιμές για αυτό. Στη συνέχεια, η ρουτίνα περιστρέφεται σε κάθε Περιοχή στο αντικείμενο Range και μορφοποιεί το κελί. Μπορείτε εύκολα να προσαρμόσετε αυτό το τμήμα της υπορουτίνας για να εφαρμόσετε διαφορετική μορφοποίηση.
Ρίξτε μια ματιά στο πρόσθετο Power Utility Pak για μια πολύ πιο εξελιγμένη έκδοση αυτού του βοηθητικού προγράμματος.