Diagramos spalva iš langelių su jos duomenimis

Problemos formulavimas

Norėčiau, kad histogramos stulpeliai (arba skritulinės diagramos skiltys ir pan.) automatiškai turėtų spalvą, kuri buvo naudojama atitinkamiems langeliams užpildyti šaltinio duomenimis:

Numatant nustebusius ir pasipiktinusius atskirų bendražygių šauksmus, reikia pažymėti, kad, žinoma, diagramos užpildymo spalvą galima keisti ir rankiniu būdu (dešiniuoju pelės mygtuku spustelėkite stulpelį – Taško / serijos formatas (Formatuoti duomenų tašką / seriją) ir tt – niekas nesiginčija. Tačiau praktikoje yra daug situacijų, kai lengviau ir patogiau tai padaryti tiesiai langeliuose su duomenimis, o tada diagrama turėtų būti automatiškai perpiešta. Pavyzdžiui, pabandykite nustatyti šios diagramos stulpelių užpildymą pagal regioną:

Manau, supratai mintį, tiesa?

Sprendimas

Tai gali padaryti tik makrokomandos. Todėl atidarome Visual Basic redaktorius iš skirtuko ryškalas (Kūrėjas – „Visual Basic“ redaktorius) arba paspauskite spartųjį klavišą Alt + F11, įdėkite naują tuščią modulį per meniu Įterpimas – modulis ir nukopijuokite ten tokios makrokomandos tekstą, kuris atliks visą darbą:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Tada MsgBox "Сначала выделите диаграмму!" Išeikite iš antrinės dalies, jei nustatyta c = ActiveChart, kai j = 1. Į c.SeriesCollection.Count f = c.SeriesCollection(j). Formulė m = Split(f, ",") Nustatyti r = diapazonas(m(2)) i = 1 Iki r.Ląstelių skaičius c.SeriesCollection(j).Taškai(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub  

Dabar galite uždaryti „Visual Basic“ ir grįžti į „Excel“. Naudoti sukurtą makrokomandą labai paprasta. Pasirinkite diagramą (diagramos sritį, o ne diagramos sritį, tinklelį ar stulpelius!):

ir paleiskite makrokomandą mygtuku Makrokomandos kortelė ryškalas (Kūrėjas – makrokomandos) arba sparčiuoju klavišu Alt + F8. Tame pačiame lange, dažnai naudojant, makrokomandai galite priskirti spartųjį klavišą naudodami mygtuką Parametrai (Galimybės).

PS

Vienintelė klaida yra tai, kad neįmanoma naudoti panašios funkcijos tais atvejais, kai šaltinio duomenų langeliams spalva priskiriama naudojant sąlyginio formatavimo taisykles. Deja, „Visual Basic“ neturi įmontuoto įrankio šioms spalvoms nuskaityti. Žinoma, yra tam tikrų „ramentų“, tačiau jie neveikia visais atvejais ir ne visomis versijomis.

  • Kas yra makrokomandos, kaip jas naudoti, kur įterpti makrokomandos kodą Visual Basic
  • Sąlyginis formatavimas programoje Excel 2007–2013
  • Kas naujo „Excel 2013“ diagramose

Palikti atsakymą