Diagrammi värv lahtritest koos selle andmetega

Probleemi sõnastamine

Soovin, et histogrammi veergudel (või sektordiagrammi lõikudel jne) oleks automaatselt värv, mida kasutati vastavate lahtrite täitmiseks lähteandmetega:

Aimates üksikute seltsimeeste üllatunud ja nördinud hüüdeid, tuleb märkida, et loomulikult saab diagrammi täidise värvi muuta ka käsitsi (veerul paremklõps – Punkti/seeria formaat (Andmepunkti/-seeria vormindamine) jne – keegi ei vaidle vastu. Kuid praktikas on palju olukordi, kus seda on lihtsam ja mugavam teha otse andmetega lahtrites ja seejärel tuleks diagramm automaatselt ümber värvida. Proovige näiteks määrata selle diagrammi veergude täitmine piirkonna järgi.

Ma arvan, et saate ideest aru, eks?

Lahendus

Seda saab teha ainult makro. Seetõttu avame Visual Basicu redaktor vahekaardilt arendaja (Arendaja – Visual Basicu redaktor) või vajutage kiirklahvi Alt + F11, sisestage menüü kaudu uus tühi moodul Sisesta – moodul ja kopeerige sinna sellise makro tekst, mis teeb kogu töö ära:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" then MsgBox "Сначала выделите диаграмму!" Välju alamlõpust, kui määrake c = ActiveChart j = 1 jaoks To c.SeriesCollection.Count f = c.SeriesCollection(j). Valem m = Split(f, ",") Määra r = vahemik(m(2)) i jaoks = 1 To r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub  

Nüüd saate Visual Basicu sulgeda ja Excelisse naasta. Loodud makro kasutamine on väga lihtne. Valige diagramm (diagrammi ala, mitte joonise ala, ruudustik või veerud!):

ja käivitage meie makro nupuga Makrod tab arendaja (Arendaja – makrod) või kiirklahviga Alt + F8. Samas aknas saab sagedase kasutamise korral määrata makrole kiirklahvi kasutades nuppu parameetrid (Valikud).

PS

Ainus viga on sarnase funktsiooni võimatus kasutada juhtudel, kui lähteandmete lahtritele määratakse tingimusvormingu reeglite abil värv. Kahjuks ei ole Visual Basicul nende värvide lugemiseks sisseehitatud tööriista. Muidugi on teatud "kargud", kuid need ei tööta kõigil juhtudel ja mitte kõigis versioonides.

  • Mis on makrod, kuidas neid kasutada, kuhu Visual Basicus makrokoodi sisestada
  • Tingimuslik vormindamine Excelis 2007–2013
  • Mis on uut Excel 2013 diagrammides?

Jäta vastus