Farven på et diagram fra celler med dets data

Formulering af problemet

Jeg vil gerne have, at kolonnerne på histogrammet (eller skiverne på cirkeldiagrammet osv.) automatisk har den farve, der blev brugt til at udfylde de tilsvarende celler med kildedata:

Foregribe de overraskede og indignerede skrig fra individuelle kammerater, skal det bemærkes, at farven på fyldningen i diagrammet selvfølgelig også kan ændres manuelt (højreklik på kolonnen - Punkt/serie format (Formater datapunkt/serie) osv. – ingen argumenterer. Men i praksis er der rigtig mange situationer, hvor det er nemmere og mere bekvemt at gøre dette direkte i cellerne med data, og så skal diagrammet så males om automatisk. Prøv for eksempel at indstille fyld efter område for kolonnerne i dette diagram:

Jeg tror, ​​du forstår ideen, ikke?

Løsning

Intet andet end en makro kan gøre dette. Derfor åbner vi Visual Basic editor fra fanen developer (Udvikler – Visual Basic Editor) eller tryk på tastaturgenvejen Alt + F11, indsæt et nyt tomt modul gennem menuen Indsæt – Modul og kopier teksten til en sådan makro der, som vil gøre alt arbejdet:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Then MsgBox "Сначала выделите диаграмму!" Exit Sub End If Set c = ActiveChart For j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j).Formel m = Split(f, ",") Sæt r = Range(m(2)) For i = 1 Til r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Næste i Næste j End Sub  

Du kan nu lukke Visual Basic og vende tilbage til Excel. Det er meget simpelt at bruge den oprettede makro. Vælg diagrammet (kortområde, ikke plotområde, gitter eller kolonner!):

og kør vores makro med knappen Makroer fanen developer (Udvikler – Makroer) eller med en tastaturgenvej Alt + F8. I det samme vindue, i tilfælde af hyppig brug, kan du tildele en tastaturgenvej til makroen ved hjælp af knappen parametre (Muligheder).

PS

Den eneste flue i salven er umuligheden af ​​at bruge en lignende funktion i tilfælde, hvor farven er tildelt cellerne i kildedataene ved hjælp af betingede formateringsregler. Visual Basic har desværre ikke et indbygget værktøj til at læse disse farver. Der er selvfølgelig visse “krykker”, men de virker ikke til alle tilfælde og ikke i alle versioner.

  • Hvad er makroer, hvordan man bruger dem, hvor skal man indsætte makrokode i Visual Basic
  • Betinget formatering i Excel 2007-2013
  • Hvad er nyt i diagrammer i Excel 2013

Giv en kommentar