Χρώμα γραφήματος από κελιά με τα δεδομένα του

Διατύπωση του προβλήματος

Θα ήθελα οι στήλες στο ιστόγραμμα (ή οι φέτες στο γράφημα πίτας κ.λπ.) να έχουν αυτόματα το χρώμα που χρησιμοποιήθηκε για να γεμίσουν τα αντίστοιχα κελιά με τα δεδομένα προέλευσης:

Προβλέποντας τις έκπληκτες και αγανακτισμένες κραυγές μεμονωμένων συντρόφων, πρέπει να σημειωθεί ότι, φυσικά, το χρώμα του γεμίσματος στο διάγραμμα μπορεί επίσης να αλλάξει χειροκίνητα (κάντε δεξί κλικ στη στήλη - Μορφή σημείου/σειράς (Μορφοποίηση σημείου/σειράς δεδομένων) κ.λπ. – κανείς δεν διαφωνεί. Αλλά στην πράξη, υπάρχουν πολλές περιπτώσεις όπου είναι ευκολότερο και πιο βολικό να το κάνετε αυτό απευθείας στα κελιά με δεδομένα και, στη συνέχεια, το γράφημα θα πρέπει στη συνέχεια να ζωγραφιστεί ξανά αυτόματα. Δοκιμάστε, για παράδειγμα, να ορίσετε το γέμισμα ανά περιοχή για τις στήλες σε αυτό το γράφημα:

Νομίζω ότι κατάλαβες την ιδέα, σωστά;

Λύση

Τίποτα άλλο εκτός από μια μακροεντολή δεν μπορεί να το κάνει αυτό. Επομένως, ανοίγουμε Πρόγραμμα επεξεργασίας της Visual Basic από την καρτέλα προγραμματιστή (Προγραμματιστής — Visual Basic Editor) ή πατήστε τη συντόμευση πληκτρολογίου Alt + F11, εισάγετε μια νέα κενή μονάδα μέσω του μενού Εισαγωγή – Ενότητα και αντιγράψτε το κείμενο μιας τέτοιας μακροεντολής εκεί, η οποία θα κάνει όλη τη δουλειά:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Τότε MsgBox "Сначала выделите диаграмму!" Έξοδος δευτερεύοντος τερματισμού εάν Σετ c = ActiveChart Για j = 1 Σε c.SeriesCollection.Count f = c.SeriesCollection(j).Τύπος m = Split(f, ",") Set r = Range(m(2)) Για i = 1 Προς r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub  

Τώρα μπορείτε να κλείσετε τη Visual Basic και να επιστρέψετε στο Excel. Η χρήση της μακροεντολής που δημιουργήθηκε είναι πολύ απλή. Επιλέξτε το γράφημα (περιοχή γραφήματος, όχι περιοχή γραφήματος, πλέγμα ή στήλες!):

και τρέξτε τη μακροεντολή μας με το κουμπί Μακροεντολές αυτί προγραμματιστή (Προγραμματιστής — Μακροεντολές) ή με συντόμευση πληκτρολογίου Alt + F8. Στο ίδιο παράθυρο, σε περίπτωση συχνής χρήσης, μπορείτε να αντιστοιχίσετε μια συντόμευση πληκτρολογίου στη μακροεντολή χρησιμοποιώντας το κουμπί παράμετροι (Επιλογές).

PS

Το μόνο μύγα στην αλοιφή είναι η αδυναμία χρήσης παρόμοιας λειτουργίας για περιπτώσεις όπου το χρώμα εκχωρείται στα κελιά των δεδομένων πηγής χρησιμοποιώντας κανόνες μορφοποίησης υπό όρους. Δυστυχώς, η Visual Basic δεν διαθέτει ενσωματωμένο εργαλείο για την ανάγνωση αυτών των χρωμάτων. Υπάρχουν, φυσικά, ορισμένα «δεκανίκια», αλλά δεν λειτουργούν για όλες τις περιπτώσεις και όχι σε όλες τις εκδόσεις.

  • Τι είναι οι μακροεντολές, πώς να τις χρησιμοποιήσετε, πού να εισαγάγετε κώδικα μακροεντολής στη Visual Basic
  • Μορφοποίηση υπό όρους στο Excel 2007-2013
  • Τι νέο υπάρχει στα γραφήματα στο Excel 2013

Αφήστε μια απάντηση