Farge på et diagram fra celler med dets data

Formulering av problemet

Jeg vil at kolonnene på histogrammet (eller skivene på sektordiagrammet, osv.) automatisk skal ha fargen som ble brukt til å fylle de tilsvarende cellene med kildedata:

For å forutse de overraskede og indignerte ropene fra individuelle kamerater, bør det bemerkes at fargen på fyllingen i diagrammet selvfølgelig også kan endres manuelt (høyreklikk på kolonnen - Punkt/serieformat (Formater datapunkt/serie) osv. – ingen argumenterer. Men i praksis er det mange situasjoner hvor det er enklere og mer praktisk å gjøre dette direkte i cellene med data, og da skal diagrammet da males på nytt automatisk. Prøv for eksempel å angi fyll etter område for kolonnene i dette diagrammet:

Jeg tror du forstår ideen, ikke sant?

Oppløsning

Ingenting annet enn en makro kan gjøre dette. Derfor åpner vi Visual Basic-editor fra fanen utvikler (Utvikler – Visual Basic Editor) eller trykk på hurtigtasten Alt + F11, sett inn en ny tom modul gjennom menyen Sett inn – modul og kopier teksten til en slik makro der, som vil gjøre alt arbeidet:

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, ",") Sett 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 Neste i Neste j End Sub  

Du kan nå lukke Visual Basic og gå tilbake til Excel. Det er veldig enkelt å bruke den opprettede makroen. Velg diagrammet (kartområde, ikke plottområde, rutenett eller kolonner!):

og kjør makroen vår med knappen Makroer tab utvikler (Utvikler – Makroer) eller med en hurtigtast Alt + F8. I samme vindu, ved hyppig bruk, kan du tilordne en tastatursnarvei til makroen ved å bruke knappen parametere (Alternativer).

PS

Den eneste fluen i salven er umuligheten av å bruke en lignende funksjon for tilfeller der fargen er tildelt cellene i kildedataene ved å bruke betingede formateringsregler. Visual Basic har dessverre ikke et innebygd verktøy for å lese disse fargene. Det er selvfølgelig visse "krykker", men de fungerer ikke for alle tilfeller og ikke i alle versjoner.

  • Hva er makroer, hvordan bruker du dem, hvor skal du sette inn makrokode i Visual Basic
  • Betinget formatering i Excel 2007-2013
  • Hva er nytt i diagrammer i Excel 2013

Legg igjen en kommentar