Note: The other languages of the website are Google-translated. Back to English

如何在Excel中根据单元格颜色为图表着色?

通常,当您创建图表时,列栏的颜色是默认颜色。 如果您需要根据显示的单元格颜色来设置每个条形上的填充颜色的格式,如下所示,那么如何在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 for Excel,借助此方便的功能,您可以快速轻松地根据单元格颜色为图表着色。

请注意: 申请这个 根据单元格颜色更改图表颜色,首先,您应该下载 Kutools for Excel,然后快速轻松地应用该功能。

安装后 Kutools for Excel,请这样做:

1。 首先,请插入要使用的图表,然后选择图表,然后单击 库工具 > 图表 > 图表工具 > 根据单元格颜色更改图表颜色,请参见屏幕截图:

2。 然后弹出一个提示框,请点击 OK 按钮。

3。 现在,所选的图表已根据单元格颜色进行了着色,如下图所示:

使用基于单元格颜色的一个数据系列为图表着色

根据单元格颜色为图表添加多个数据系列

立即下载和免费试用Excel的Kutools!


更多相关图表文章:

  • 在Excel中创建覆盖另一个条形图的条形图
  • 当我们创建具有两个数据系列的群集条形图或柱形图时,两个数据系列条形图将并排显示。 但是,有时候,我们需要使用重叠或重叠的条形图来更清晰地比较两个数据系列。 在本文中,我将讨论如何在Excel中创建重叠的条形图。
  • 在Excel中将一种图表格式复制到其他图表格式
  • 假设工作表中有多种不同类型的图表,您已根据需要设置了一个图表的格式,现在您希望将此图表格式应用于其他图表。 当然,您可以手动手动设置其他格式,但这会浪费很多时间,是否有任何快速或便捷的方法可以将一种图表格式复制到Excel中的其他格式?
  • 在图表中突出显示最大和最小数据点
  • 如果您有一个柱形图,想要用不同的颜色突出显示最高或最小的数据点,以使其脱颖而出,如下面的屏幕截图所示。 您如何确定最大值和最小值,然后快速突出显示图表中的数据点?
  • 在Excel中创建步骤图
  • 步进图用于显示不定期发生的变化,它是折线图的扩展版本。 但是,没有直接的方法可以在Excel中创建它。 本文,我将讨论如何在Excel工作表中逐步创建步骤图。
  • 在Excel中创建进度条形图
  • 在Excel中,进度条形图可以帮助您监视实现目标的进度,如下图所示。 但是,如何在Excel工作表中创建进度条形图?

最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (8)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
如果我的工作表中有更多图表? 你有另一个代码吗?
该评论由网站上的主持人最小化
感谢您提供这些代码! 这正是我一直在寻找的一个细节不太合适的东西。 当我运行代码时,条形图正确着色,但没有保持不变的图例。 包含图例的代码是否有变体? 或者有没有办法在没有代码的情况下将图例与图表中的变化相匹配?
该评论由网站上的主持人最小化
谢谢你的代码! 当格式已经建立时,您将如何添加条件格式?
该评论由网站上的主持人最小化
这是一个很棒的开始,但图表和单元格的颜色并不总是匹配。 知道为什么吗?
该评论由网站上的主持人最小化
我不能让它工作:(这应该在堆积条形图上工作吗?谢谢
该评论由网站上的主持人最小化
没关系。 但是......为什么不去图表中每个数据系列中的“格式化图例条目”选项,然后去“填充”并使其成为您想要的颜色。 我的意思是……一切都很好,但是这个简单任务的 VBA 代码有点矫枉过正。 不过谢谢。 感谢您分享它。
该评论由网站上的主持人最小化
如果我的工作表中有更多图表? 你有另一个代码吗?
该评论由网站上的主持人最小化
对于超过 1 个图表:



Sub CellColorsToChart()'Updateby Extendoffice
将 xChart 调暗为图表
昏暗我一样长,J一样长, Y 只要
将 xRowsOrCols 调暗,xSCount 调暗 xRg 作为范围,xCell 作为范围
出错时继续下一步

对于 Y = 1 到 100设置 xChart = ActiveSheet.ChartObjects("图表"&Y).Chart 如果 xChart 什么都没有,则退出 Sub
xSCount = xChart.SeriesCollection.Count
对于 I = 1 到 xSCount
Ĵ = 1
使用 xChart.SeriesCollection(I)
设置 xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(2), "!")(1))
如果 xSCount > 4 那么
xRowsOrCols = xRg.Columns.Count
其他
xRowsOrCols = xRg.Rows.Count
结束如果
对于 xRg 中的每个 xCell
.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
下一页
以下一个结尾
下一页
END SUB

这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护