Diagrammas krāsa no šūnām ar tās datiem

Problēmas formulēšana

Es vēlos, lai histogrammas kolonnām (vai sektoru diagrammas daļām utt.) automātiski būtu krāsa, kas tika izmantota, lai atbilstošās šūnas aizpildītu ar avota datiem:

Paredzot atsevišķu biedru pārsteigtos un sašutušos saucienus, jāņem vērā, ka, protams, diagrammas aizpildījuma krāsu var mainīt arī manuāli (ar peles labo pogu noklikšķiniet uz kolonnas – Punkta/sērijas formāts (Formatēt datu punktu/sēriju) utt – neviens nestrīdas. Bet praksē ir daudz situāciju, kad to ir vieglāk un ērtāk izdarīt tieši šūnās ar datiem, un tad diagramma ir automātiski jāpārkrāso. Piemēram, mēģiniet šīs diagrammas kolonnām iestatīt aizpildījumu pēc reģiona:

Es domāju, ka jūs sapratāt domu, vai ne?

Šķīdums

To var izdarīt tikai makro. Tāpēc mēs atveram Visual Basic redaktors no cilnes attīstītājs (Izstrādātājs — Visual Basic redaktors) vai nospiediet īsinājumtaustiņu Alt+F11, izvēlnē ievietojiet jaunu tukšu moduli Ievietot - modulis un kopējiet tur šāda makro tekstu, kas veiks visu darbu:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" then MsgBox "Сначала выделите диаграмму!" Iziet no apakšgala, ja iestatīta c = ActiveChart, ja j = 1 Līdz c.SeriesCollection.Count f = c.SeriesCollection(j). Formula m = Split(f, ",") Iestatīt r = diapazons(m(2)) i = 1 Līdz r.Šūnu skaits c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub  

Tagad varat aizvērt Visual Basic un atgriezties programmā Excel. Izveidotā makro izmantošana ir ļoti vienkārša. Atlasiet diagrammu (diagrammas apgabalu, nevis diagrammas apgabalu, režģi vai kolonnas!):

un palaidiet mūsu makro ar pogu Makro tab attīstītājs (Izstrādātājs — makro) vai ar īsinājumtaustiņu Alt+F8. Tajā pašā logā biežas lietošanas gadījumā makro var piešķirt īsinājumtaustiņu, izmantojot pogu parametri (Opcijas).

PS

Vienīgā kļūda ir neiespējamība izmantot līdzīgu funkciju gadījumos, kad avota datu šūnām tiek piešķirta krāsa, izmantojot nosacītās formatēšanas noteikumus. Diemžēl Visual Basic nav iebūvēta rīka šo krāsu nolasīšanai. Protams, ir daži “kruķi”, taču tie nedarbojas visos gadījumos un ne visās versijās.

  • Kas ir makro, kā tos lietot, kur ievietot makro kodu programmā Visual Basic
  • Nosacījuma formatēšana programmā Excel 2007-2013
  • Kas jauns programmā Excel 2013 diagrammās

Atstāj atbildi