Formulering av problemet
Jag skulle vilja att kolumnerna i histogrammet (eller skivorna i cirkeldiagrammet, etc.) automatiskt ska ha den färg som användes för att fylla motsvarande celler med källdata:
För att förutse de förvånade och indignerade ropen från enskilda kamrater bör det noteras att färgen på fyllningen i diagrammet naturligtvis också kan ändras manuellt (högerklicka på kolumnen - Punkt/serieformat (Formatera datapunkt/serie) etc. – ingen argumenterar. Men i praktiken finns det många situationer då det är enklare och bekvämare att göra detta direkt i cellerna med data, och då ska diagrammet sedan målas om automatiskt. Försök till exempel att ställa in fyllningen efter region för kolumnerna i det här diagrammet:
Jag tror att du förstår idén, eller hur?
Lösning
Inget annat än ett makro kan göra detta. Därför öppnar vi Visual Basic-redigerare från fliken utvecklare (Utvecklare – Visual Basic Editor) eller tryck på kortkommandot Alt + F11, infoga en ny tom modul genom menyn Infoga – Modul och kopiera texten till ett sådant makro där, vilket kommer att göra allt arbete:
Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Then MsgBox "Сначала выделите диаграмму!" Exit Sub End If Set c = ActiveChart För j = 1 Till c.SeriesCollection.Count f = c.SeriesCollection(j).Formel m = Split(f, ",") Set r = Range(m(2)) För i = 1 Till r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Nästa i Nästa j End Sub
Du kan nu stänga Visual Basic och återgå till Excel. Att använda det skapade makrot är mycket enkelt. Välj diagrammet (diagramområde, inte plotområde, rutnät eller kolumner!):
och kör vårt makro med knappen Makron fliken utvecklare (Utvecklare – Makron) eller med ett kortkommando Alt + F8. I samma fönster, vid frekvent användning, kan du tilldela en tangentbordsgenväg till makrot med knappen parametrar (Alternativ).
PS
Den enda flugan i salvan är omöjligheten att använda en liknande funktion för fall där färgen tilldelas cellerna i källdata med villkorliga formateringsregler. Tyvärr har Visual Basic inget inbyggt verktyg för att läsa dessa färger. Det finns naturligtvis vissa "kryckor", men de fungerar inte för alla fall och inte i alla versioner.
- Vad är makron, hur man använder dem, var man infogar makrokod i Visual Basic
- Villkorlig formatering i Excel 2007-2013
- Vad är nytt i diagram i Excel 2013