Εάν θέλετε να δημιουργήσετε έναν πίνακα ελέγχου με ένα γράφημα που αλλάζει τα δεδομένα του σύμφωνα με τις επιλεγμένες επιλογές, μπορείτε να χρησιμοποιήσετε τα συμβάντα στο VBA. Ναι, μπορεί να γίνει. Δεν θα χρειαστούμε κανένα αναπτυσσόμενο, τεμαχισμένο ή σύνθετο πλαίσιο. Θα κάνουμε τα κελιά να κάνουν κλικ και θα αλλάξουμε δεδομένα για να δημιουργήσουμε ένα γράφημα από το επιλεγμένο κελί.
Ακολουθήστε τα παρακάτω βήματα για να δημιουργήσετε δυναμικά γραφήματα στο excel που αλλάζουν ανάλογα με την επιλογή κελιού.
Βήμα 1: Προετοιμάστε τα δεδομένα σε ένα φύλλο ως πηγή για το γράφημα.
Εδώ έχω μερικά δείγματα δεδομένων από διαφορετικές περιοχές σε ένα φύλλο. Το ονόμασα δεδομένα προέλευσης.
Βήμα 2: Λάβετε ταυτόχρονα τα δεδομένα μιας περιοχής σε διαφορετικό φύλλο.
- Τώρα εισάγετε ένα νέο φύλλο. Ονομάστε το κατάλληλα. Το ονόμασα ως "Πίνακας ελέγχου".
- Αντιγράψτε όλους τους μήνες σε μία στήλη. Γράψτε το όνομα μιας περιοχής δίπλα στον μήνα.
- Τώρα θέλουμε να τραβήξουμε δεδομένα της περιοχής στο Cell D1. Θέλουμε τα δεδομένα να αλλάξουν καθώς η περιοχή αλλάζει στο D1. Για αυτό, μπορούμε να χρησιμοποιήσουμε το Two Way Lookup.
Δεδομένου ότι τα δεδομένα πηγής μου βρίσκονται στο A2: D8 στο φύλλο δεδομένων πηγής. Χρησιμοποιώ τον παρακάτω τύπο.
=VLOOKUP(C2, «Δεδομένα πηγής»! $ A $ 2: $ D $ 8,ΑΓΩΝΑΣ($ D $ 1, "Δεδομένα πηγής"! $ A $ 1: $ D $ 1,0)) |
Εδώ χρησιμοποιούμε δυναμική ευρετηρίαση στηλών για το VLOOKUP. Μπορείτε να διαβάσετε για αυτό εδώ.
- Εισαγάγετε ένα γράφημα χρησιμοποιώντας αυτά τα δεδομένα στο φύλλο Πίνακας ελέγχου. Χρησιμοποιώ ένα απλό γράφημα γραμμών. Απόκρυψη της πηγής του γραφήματος, αν δεν θέλετε να τα εμφανίσετε.
Τώρα καθώς αλλάζετε το όνομα περιοχής στην D1, το γράφημα θα αλλάξει ανάλογα. Το επόμενο βήμα είναι να αλλάξετε το όνομα της περιοχής στο D1 καθώς επιλέγετε μια επιλογή από το καθορισμένο κελί.
Βήμα 3: Αλλάξτε την περιοχή καθώς επιλέγετε ένα όνομα περιοχής στο καθορισμένο εύρος.
- Γράψτε όλα τα ονόματα της περιοχής σε μια περιοχή, τα γράφω στην περιοχή A2: A4.
- Κάντε δεξί κλικ στο όνομα του φύλλου Πίνακα ελέγχου και κάντε κλικ στην επιλογή "Προβολή κώδικα" για να εισέλθετε απευθείας στη λειτουργική μονάδα φύλλου εργασίας στο VBE, ώστε να μπορούμε να χρησιμοποιήσουμε το συμβάν φύλλου εργασίας.
- Τώρα γράψτε τον παρακάτω κώδικα στο VB Editor.
Private Sub Worksheet_SelectionChange (ByVal Target As Range) If Not Intersect (Target, Range ("A2: A4")) Is Something then Range ("A2: A4"). Interior.ColorIndex = xlColorIndex Καμία αμυδρή περιοχή ως περιοχή παραλλαγής = Target.value On Error GoTo err: Select Case area Case Is = "Central" Range ("D1"). Value = region Case Is = "East" Range ("D1"). Value = area Case Is = "West" Range ("D1 ") .value = area Case Else MsgBox" Invalid Option "End Select Target.Interior.ColorIndex = 8 Τέλος Εάν σφάλλει: End Sub
Και γίνεται. Τώρα, κάθε φορά που θα επιλέξετε ένα κελί στο εύρος A2: A4, η τιμή του θα εκχωρηθεί στο D1 και τα δεδομένα του γραφήματος θα αλλάξουν ανάλογα.
Έχω εξηγήσει πώς λειτουργεί αυτός ο κώδικας παρακάτω. Μπορείτε να το καταλάβετε και να κάνετε αλλαγές σύμφωνα με τις απαιτήσεις σας. Έχω δώσει συνδέσμους για να βοηθήσω θέματα που έχω χρησιμοποιήσει εδώ σε αυτό το παράδειγμα. Ελέγξτε τα λοιπόν.
Πώς λειτουργεί ο κώδικας;
Εδώ έχω χρησιμοποιήσει το συμβάν του Excel. Χρησιμοποίησα ένα συμβάν φύλλου εργασίας "Αλλαγή Επιλογής" για να ενεργοποιήσω τα συμβάντα.
Εάν δεν διασταυρώνεται (στόχος, εύρος ("A2: A4")) δεν είναι τίποτα τότε
Αυτή η γραμμή ορίζει την εστίαση στο εύρος A2: A4 έτσι ώστε το συμβάν SelectionChange να ενεργοποιείται μόνο όταν η επιλογή βρίσκεται στο εύρος A2: A4. Ο κωδικός μεταξύ If και End θα εκτελεστεί μόνο εάν η επιλογή βρίσκεται στο εύρος A2: A4. Τώρα μπορείτε να το ορίσετε σύμφωνα με τις απαιτήσεις σας για να κάνετε το γράφημα σας δυναμικό.
Εύρος ("A2: A4"). Interior.ColorIndex = xlColorIndexΚανένα
Αυτή η γραμμή ορίζει το χρώμα της περιοχής A2: A4 σε τίποτα.
περιοχή = Target.value On Error GoTo σφάλμα:
Στις δύο παραπάνω γραμμές, λαμβάνουμε την τιμή των επιλεγμένων κελιών στη μεταβλητή περιοχή και αγνοούμε κάθε σφάλμα που προκύπτει. μην χρησιμοποιείτε τη γραμμή "On Error GoTo err:" μέχρι να είστε σίγουροι ότι θέλετε να αγνοήσετε οποιοδήποτε σφάλμα προκύψει. Το χρησιμοποίησα για να αποφύγω ένα σφάλμα όταν επιλέγω πολλά κελιά.
Επιλέξτε Περιοχή Περίπτωσης Περίπτωση Περίπτωση = "Κεντρικό" Εύρος ("D1"). Αξία = περιοχή Περίπτωση Περίπτωση = Περιοχή Περίπτωση "" D1 "). Value = περιοχή Περίπτωση Περίπτωση =" Δυτικό "εύρος (" D1 "). Αξία = region Case Else MsgBox "Invalid Option" End Select
Στις παραπάνω γραμμές, χρησιμοποιούμε υπερήφανα Select Case Statement για να ορίσουμε την τιμή του εύρους D1.
Target.Interior.ColorIndex = 8 Τέλος Εάν σφάλλει: Τέλος υπο
Πριν από τη δήλωση Τέλος Αν, αλλάζουμε το χρώμα της επιλεγμένης επιλογής έτσι ώστε να επισημαίνεται. Στη συνέχεια, εάν η δήλωση τελειώσει και σφάλμα: ξεκινά η ετικέτα. Η δήλωση σφάλματος On θα μεταβεί σε αυτήν την ετικέτα εάν παρουσιαστεί κάποιο σφάλμα κατά τη διάρκεια της δήλωσης επιλογής.
Κατεβάστε το αρχείο εργασίας παρακάτω.
Ενσωματωμένα συμβάντα γραφήματος χρησιμοποιώντας VBA στο Microsoft Excel| Τα γεγονότα των ενσωματωμένων γραφημάτων μπορούν να κάνουν το γράφημα πιο διαδραστικό, δυναμικό και χρήσιμο από τα κανονικά γραφήματα. Για να ενεργοποιήσουμε τα γεγονότα στα γραφήματα,…
Οι εκδηλώσεις στο Excel VBA |Υπάρχουν επτά τύποι συμβάντων στο Excel. Κάθε εκδήλωση ασχολείται με διαφορετικό πεδίο. Το Application Event ασχολείται σε επίπεδο βιβλίου εργασίας. Τετράδιο εργασίας σε επίπεδο φύλλων. Εκδήλωση φύλλου εργασίας σε επίπεδο εμβέλειας.
Οι εκδηλώσεις φύλλου εργασίας στο Excel VBA| Το συμβάν φύλλου εργασίας είναι πραγματικά χρήσιμο όταν θέλετε οι μακροεντολές σας να εκτελούνται όταν εμφανίζεται ένα συγκεκριμένο συμβάν στο φύλλο.
Εκδηλώσεις βιβλίου εργασίας χρησιμοποιώντας VBA στο Microsoft Excel | Οι εκδηλώσεις του βιβλίου εργασίας λειτουργούν σε ολόκληρο το βιβλίο εργασίας. Δεδομένου ότι όλα τα φύλλα είναι μέρος του βιβλίου εργασίας, αυτά τα γεγονότα λειτουργούν και σε αυτά.
Αποτρέψτε την εκτέλεση automacro/eventmacro χρησιμοποιώντας VBA στο Microsoft Excel| Για να αποτρέψετε την εκτέλεση της μακροεντολής auto_open χρησιμοποιήστε το πλήκτρο shift.
Συμβάντα αντικειμένου γραφήματος χρησιμοποιώντας VBA στο Microsoft Excel| Τα διαγράμματα είναι πολύπλοκα αντικείμενα και υπάρχουν πολλά στοιχεία που τα έχετε προσαρτήσει. Για να φτιάξουμε τα Chart Events χρησιμοποιούμε την ενότητα Class.
Δημοφιλή άρθρα:
50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας | Γίνετε πιο γρήγοροι στην εργασία σας. Αυτές οι 50 συντομεύσεις θα κάνουν τη δουλειά σας ακόμη πιο γρήγορη στο Excel.
Η συνάρτηση VLOOKUP στο Excel | Αυτή είναι μια από τις πιο δημοφιλείς και δημοφιλείς λειτουργίες του excel που χρησιμοποιείται για την αναζήτηση τιμών από διαφορετικά εύρη και φύλλα.
COUNTIF στο Excel 2016 | Μετρήστε τιμές με συνθήκες χρησιμοποιώντας αυτήν την εκπληκτική συνάρτηση. Δεν χρειάζεται να φιλτράρετε τα δεδομένα σας για να μετρήσετε συγκεκριμένη τιμή. Η λειτουργία Countif είναι απαραίτητη για την προετοιμασία του ταμπλό σας.
Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel | Αυτή είναι μια άλλη βασική λειτουργία του ταμπλό. Αυτό σας βοηθά να συνοψίσετε τιμές υπό συγκεκριμένες συνθήκες.