Kulay ng isang tsart mula sa mga cell kasama ang data nito

Pagbubuo ng problema

Gusto kong ang mga column sa histogram (o mga hiwa sa pie chart, atbp.) ay awtomatikong magkaroon ng kulay na ginamit upang punan ang mga kaukulang cell ng source data:

Inaasahan ang nagulat at nagagalit na pag-iyak ng mga indibidwal na kasama, dapat tandaan na, siyempre, ang kulay ng punan sa diagram ay maaari ding baguhin nang manu-mano (i-right-click sa hanay - Format ng punto/serye (I-format ang punto/serye ng data) at iba pa – walang nakikipagtalo. Ngunit sa pagsasagawa, maraming mga sitwasyon kung saan mas madali at mas maginhawang gawin ito nang direkta sa mga cell na may data, at pagkatapos ay ang tsart ay dapat pagkatapos ay awtomatikong maipinta muli. Subukan, halimbawa, upang itakda ang fill ayon sa rehiyon para sa mga column sa chart na ito:

Sa tingin ko nakuha mo ang ideya, tama ba?

Solusyon

Walang magagawa maliban sa isang macro. Samakatuwid, binuksan namin Visual Basic na editor mula sa tab developer (Developer — Visual Basic Editor) o pindutin ang keyboard shortcut Alt + F11, magpasok ng bagong walang laman na module sa pamamagitan ng menu Ipasok – Module at kopyahin ang teksto ng naturang macro doon, na gagawin ang lahat ng gawain:

I-sub SetChartColorsFromDataCells() Kung TypeName(Selection) <> "ChartArea" Pagkatapos MsgBox "Сначала выделите диаграмму!" Lumabas sa Sub End Kung Itinakda c = ActiveChart Para sa j = 1 Hanggang c.SeriesCollection.Count f = c.SeriesCollection(j).Formula m = Split(f, ","") Set r = Range(m(2)) Para sa i = 1 Sa r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub  

Maaari mo na ngayong isara ang Visual Basic at bumalik sa Excel. Ang paggamit ng nilikhang macro ay napaka-simple. Piliin ang tsart (lugar ng tsart, hindi lugar ng plot, grid o column!):

at patakbuhin ang aming macro gamit ang pindutan Macros tab developer (Developer — Macros) o gamit ang isang keyboard shortcut Alt + F8. Sa parehong window, sa kaso ng madalas na paggamit, maaari kang magtalaga ng keyboard shortcut sa macro gamit ang button parameter (Mga Opsyon).

PS

Ang tanging lumipad sa pamahid ay ang imposibilidad ng paggamit ng isang katulad na function para sa mga kaso kung saan ang kulay ay itinalaga sa mga cell ng source data gamit ang mga tuntunin sa pag-format ng kondisyon. Sa kasamaang palad, ang Visual Basic ay walang built-in na tool para sa pagbabasa ng mga kulay na ito. Mayroong, siyempre, ilang mga "saklay", ngunit hindi ito gumagana para sa lahat ng mga kaso at hindi sa lahat ng mga bersyon.

  • Ano ang mga macro, kung paano gamitin ang mga ito, kung saan ilalagay ang macro code sa Visual Basic
  • Conditional Formatting sa Excel 2007-2013
  • Ano ang Bago sa Mga Chart sa Excel 2013

Mag-iwan ng Sagot