Gå til hovedindhold

Sådan farvelæges diagram baseret på cellefarve i Excel?

Normalt, når du opretter et diagram, er farven på kolonnelinjen standard. Hvis du har brug for at formatere udfyldt farve på hver bjælke baseret på cellefarverne, som vist på nedenstående skærmbillede, hvordan kunne du løse det i Excel?

Farve diagrammet med en eller flere dataserier baseret på cellefarve med VBA-koder

Farve diagrammet med en eller flere dataserier baseret på cellefarve med en fantastisk funktion


Farve diagrammet med en eller flere dataserier baseret på cellefarve med VBA-koder

Farve diagrammet med en dataserie baseret på cellefarve

Med den følgende VBA-kode kan du hurtigt ændre farven på diagrammet, der indeholder en dataserie baseret på den oprindelige celleværdifarve, skal du gøre som dette:

1. Opret først et søjlediagram eller søjlediagram som vist på følgende skærmbillede (Vælg data, og klik indsatte > Indsæt søjle- eller søjlediagram):

2. Hold nede ALT + F11 nøgler til at åbne Microsoft Visual Basic til applikationer vindue.

3. Klik indsatte > Moduler, og indsæt følgende kode i modulvinduet.

VBA-kode: Farvekortstænger med en dataserie baseret på cellefarve:

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

Bemærk: I ovenstående kode, Diagram 1 er det kortnavn, du vil bruge, skal du ændre det til dit eget.

4. Når du har indsat ovenstående kode, skal du trykke på F5 nøgle til at køre denne kode, og farven på diagrambjælkerne er blevet ændret baseret på den oprindelige cellefarve, se skærmbillede:


Farve diagrammet med flere dataserier baseret på cellefarve

Hvis dit diagram med flere dataserier, skal du anvende følgende VBA-kode:

1. Opret venligst søjlediagrammet eller søjlediagrammet, der indeholder flere dataserier, som følgende skærmbillede vist:

2. Hold nede ALT + F11 nøgler til at åbne Microsoft Visual Basic til applikationer vindue.

3. Klik indsatte > Moduler, og indsæt følgende kode i modulvinduet.

VBA-kode: Farvekortstænger med flere dataserier baseret på cellefarve:

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. Tryk derefter på F5 nøgle til at køre denne kode, diagrammet er udfyldt med originale celler farve på én gang, se screenshot:

Bemærkninger:

1. I ovenstående kode Diagram 1 er det kortnavn, du vil bruge, skal du ændre det til dit eget.

2. Denne kode kan også anvendes på et linjediagram.


Farve diagrammet med en eller flere dataserier baseret på cellefarve med en fantastisk funktion

Ved at bruge ovenstående koder vil farvene på diagrammet ikke altid blive matchet med cellefarven, for at løse dette problem vil jeg her introducere et nyttigt værktøj - Skift kortfarve i henhold til cellefarve of Kutools til Excel, med denne praktiske funktion kan du hurtigt og let farve diagrammet ud fra cellefarven.

Bemærk: At anvende dette Skift kortfarve i henhold til cellefarveFor det første skal du downloade Kutools til Excel, og anvend derefter funktionen hurtigt og nemt.

Efter installation Kutools til Excelskal du gøre som dette:

1. Indsæt først det diagram, du vil bruge, og vælg derefter diagrammet, og klik derefter på Kutools > Diagrammer > Diagramværktøjer > Skift kortfarve i henhold til cellefarve, se skærmbillede:

2. Og derefter vises en hurtigboks, klik venligst OK .

3. Nu er det valgte diagram farvet baseret på cellefarverne som vist nedenfor:

Farve diagrammet med en dataserie baseret på cellefarve

Farve diagrammet med flere dataserier baseret på cellefarve

Download og gratis prøveversion Kutools til Excel nu!


Flere relative diagramartikler:

  • Opret et søjlediagram, der ligger over et andet søjlediagram i Excel
  • Når vi opretter et grupperet søjle- eller søjlediagram med to dataserier, vises de to dataseriestænger side om side. Men nogle gange er vi nødt til at bruge overlay eller overlappende søjlediagram til at sammenligne de to dataserier mere tydeligt. I denne artikel vil jeg tale om, hvordan man opretter et overlappet søjlediagram i Excel.
  • Kopier et diagramformat til andre i Excel
  • Antag at der er flere forskellige typer diagrammer i dit regneark, du har formateret et diagram efter dit behov, og nu vil du anvende denne kortformatering til andre diagrammer. Selvfølgelig kan du formatere andre manuelt en efter en, men dette spilder meget tid. Er der nogen hurtige eller praktiske måder for dig at kopiere et diagramformat til andre i Excel?
  • Fremhæv maksimale og minimale datapunkter i et diagram
  • Hvis du har et søjlediagram, som du vil fremhæve de højeste eller mindste datapunkter med forskellige farver for at overgå dem som vist på nedenstående skærmbillede. Hvordan kunne du identificere de højeste og mindste værdier og derefter fremhæve datapunkterne i diagrammet hurtigt?
  • Opret et trindiagram i Excel
  • Et trindiagram bruges til at vise de ændringer, der skete med uregelmæssige intervaller, det er en udvidet version af et linjediagram. Men der er ingen direkte måde at oprette det på i Excel. Denne artikel vil jeg tale om, hvordan du opretter et trindiagram trin for trin i Excel-regneark.
  • Opret statuslinjediagram i Excel
  • I Excel kan statuslinjediagram hjælpe dig med at overvåge fremskridt mod et mål som følgende skærmbillede vist. Men hvordan kunne du oprette et statuslinjediagram i Excel-regneark?

Bedste kontorproduktivitetsværktøjer

🤖 Kutools AI Aide: Revolutionér dataanalyse baseret på: Intelligent udførelse   |  Generer kode  |  Opret brugerdefinerede formler  |  Analyser data og generer diagrammer  |  Aktiver Kutools funktioner...
Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøjer (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøjer (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøjer (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøjer (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

Beskrivelse


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
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