Прескочи на основното съдържание

Как да оцветите диаграма въз основа на цвета на клетката в Excel?

Автор: Xiaoyang Последна промяна: 2020-08-20

Обикновено, когато създавате диаграма, цветът на лентата на колоната е по подразбиране. Ако трябва да форматирате запълнен цвят на всяка лента въз основа на цветовете на клетките, както е показано на следната екранна снимка, как можете да го разрешите в Excel?

Оцветете диаграмата с една или няколко серии от данни въз основа на цвета на клетката с VBA кодове

Оцветете диаграмата с една или няколко серии от данни въз основа на цвета на клетката с невероятна функция


Оцветете диаграмата с една или няколко серии от данни въз основа на цвета на клетката с VBA кодове

Оцветете диаграмата с една поредица от данни въз основа на цвета на клетката

Със следния код на VBA можете бързо да промените цвета на диаграмата, която съдържа една серия от данни въз основа на цвета на оригиналните стойности на клетките, моля, направете следното:

1. Първо създайте лентова или колонна диаграма, както е показано на следната екранна снимка (Изберете данни и щракнете Поставете > Вмъкване на колонна или лентова диаграма):

2. Задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.

3. Щракнете Поставете > Модулии поставете следния код в прозореца на модула.

VBA код: Цветни ленти на диаграмата с една серия от данни въз основа на цвета на клетката:

Sub ColorChartColumnsbyCellColor()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, xRows As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    With xChart.SeriesCollection(1)
        Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(1), "!")(1))
        xRows = xRg.Rows.Count
        Set xRg = xRg(1)
        For I = 1 To xRows
            .Points(I).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xRg.Offset(I - 1, 0).Interior.ColorIndex)
        Next
    End With
End Sub

Забележка: В горния код, Графика 1 е името на диаграмата, което искате да използвате, моля, променете го на свое.

4. След като поставите горния код, моля, натиснете F5 за изпълнение на този код и цветът на лентите на диаграмата е променен въз основа на оригиналния цвят на клетката, вижте екранната снимка:


Оцветете диаграмата с множество серии от данни въз основа на цвета на клетката

Ако вашата диаграма е с множество серии от данни, моля, приложете следния VBA код:

1. Моля, създайте лентова или колонна диаграма, която съдържа множество серии от данни, както е показано на следната екранна снимка:

2. Задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.

3. Щракнете Поставете > Модулии поставете следния код в прозореца на модула.

VBA код: Цветни ленти на диаграма с множество серии от данни въз основа на цвета на клетката:

Sub CellColorsToChart()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, J As Long
    Dim xRowsOrCols As Long, xSCount As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    xSCount = xChart.SeriesCollection.Count
    For I = 1 To xSCount
        J = 1
        With xChart.SeriesCollection(I)
            Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(2), "!")(1))
            If xSCount > 4 Then
                xRowsOrCols = xRg.Columns.Count
            Else
                xRowsOrCols = xRg.Rows.Count
            End If
            For Each xCell In xRg
                .Points(J).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
                .Points(J).Format.Line.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
                J = J + 1
            Next
        End With
    Next
End Sub

4. След това натиснете F5 за изпълнение на този код, лентите на диаграмата се запълват с оригиналния цвят на клетките наведнъж, вижте екранната снимка:

Забележки:

1. В горния код, Графика 1 е името на диаграмата, което искате да използвате, моля, променете го на свое.

2. Този код може да се приложи и към линейна диаграма.


Оцветете диаграмата с една или няколко серии от данни въз основа на цвета на клетката с невероятна функция

Използвайки горните кодове, цветовете на диаграмата не винаги ще съвпадат с цвета на клетката, за да разреша този проблем, тук ще представя един полезен инструмент - Променете цвета на диаграмата според цвета на клетката of Kutools за Excel, с тази удобна функция можете бързо и лесно да оцветите диаграмата въз основа на цвета на клетката.

Забележка: За да приложите това Променете цвета на диаграмата според цвета на клетката, първо, трябва да изтеглите Kutools за Excelи след това приложете функцията бързо и лесно.

След инсталиране Kutools за Excel, моля, направете следното:

1. Първо, моля, вмъкнете диаграмата, която искате да използвате, след това изберете диаграмата и след това щракнете Kutools > Графики > Инструменти за диаграми > Променете цвета на диаграмата според цвета на клетката, вижте екранна снимка:

2. След това изскача поле за подкана, моля щракнете OK бутон.

3. Сега диаграмата, която сте избрали, е оцветена въз основа на цветовете на клетките, както е показано на екранните снимки по-долу:

Оцветете диаграмата с една поредица от данни въз основа на цвета на клетката

Оцветете диаграмата с множество серии от данни въз основа на цвета на клетката

Изтеглете и изпробвайте безплатно Kutools за Excel сега!


Още относителни статии в диаграмата:

  • Създайте стълбовидна диаграма, наслагваща друга стълбовидна диаграма в Excel
  • Когато създадем клъстерна лентова или колонна диаграма с две серии от данни, двете ленти от серии от данни ще бъдат показани една до друга. Но понякога трябва да използваме наслагването или припокриващата се лентова диаграма, за да сравним по-ясно двете серии от данни. В тази статия ще говоря за това как да създадете припокриваща се лентова диаграма в Excel.
  • Копирайте един формат на диаграма в други в Excel
  • Да предположим, че има няколко различни типа диаграми във вашия работен лист, вие сте форматирали една диаграма според вашите нужди и сега искате да приложите това форматиране на диаграма към други диаграми. Разбира се, можете да форматирате други ръчно един по един, но това ще загуби много време, има ли някакви бързи или удобни начини да копирате един формат на диаграма в други в Excel?
  • Маркирайте максимални и минимални точки от данни в диаграма
  • Ако имате колонна диаграма, която искате да маркирате най-високите или най-малките точки с данни с различни цветове, за да ги изпъкнете, както е показано на следната екранна снимка. Как бихте могли да идентифицирате най-високите и най-малките стойности и след това бързо да маркирате точките с данни в диаграмата?
  • Създайте стъпкова диаграма в Excel
  • Стъпковата диаграма се използва за показване на промените, настъпили на неравномерни интервали, тя е разширена версия на линейна диаграма. Но няма директен начин да го създадете в Excel. В тази статия ще говоря за това как да създадете стъпкова диаграма стъпка по стъпка в работен лист на Excel.
  • Създайте лентова диаграма на напредъка в Excel
  • В Excel лентовата диаграма на напредъка може да ви помогне да наблюдавате напредъка към целта, както е показано на следната екранна снимка. Но как можете да създадете лентова диаграма на напредъка в работен лист на Excel?

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (8)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
For more than 1 Chart:



Sub CellColorsToChart()'Updateby Extendoffice
Dim xChart As Chart
Dim I As Long, J As Long, Y As Long
Dim xRowsOrCols As Long, xSCount As Long Dim xRg As Range, xCell As Range
On Error Resume Next

For Y = 1 To 100Set xChart = ActiveSheet.ChartObjects("Chart "&Y).Chart If xChart Is Nothing Then Exit Sub
xSCount = xChart.SeriesCollection.Count
For I = 1 To xSCount
J = 1
With xChart.SeriesCollection(I)
Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(2), "!")(1))
If xSCount > 4 Then
xRowsOrCols = xRg.Columns.Count
Else
xRowsOrCols = xRg.Rows.Count
End If
For Each xCell In xRg
.Points(J).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
.Points(J).Format.Line.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
J = J + 1
Next
End WithNext
Next
End Sub

This comment was minimized by the moderator on the site
If i have more charts in my sheet? do you have another code?
This comment was minimized by the moderator on the site
It is ok. But... why simply not going to "Format Legend Entry" option in every data series in the chart, and go "Fill" and make it the color you want. I mean... all is ok, but a VBA code for this simple task is kinda overkill. But thanks. Appreciate you share it.
This comment was minimized by the moderator on the site
i cant make it work :( is this supposed to work on a stacked bar chart? Thanks
This comment was minimized by the moderator on the site
This was an awesome start, but the colors of the chart and the cells don't always match. Any idea why?
This comment was minimized by the moderator on the site
Thank you for the codes! How would you add a conditional format when the format is already established?
This comment was minimized by the moderator on the site
Thank you for these codes! This was exactly what I've been looking for with one detail not quite fitting. When I ran the code, the bar graphs colored in correctly but not legend which stayed unchanged. Is there a variation to the code that would include the legend? Or is there a way to match the Legend to the changes in the chart without a code?
This comment was minimized by the moderator on the site
If i have more charts in my sheet? do you have another code?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations