如何在Excel中控制各个饼图段的颜色?

时间:2010-12-25 21:19:26

标签: excel colors charts controls

我希望能够以编程方式控制饼图中各部分的颜色。理想情况下,我的图表将基于一个3列表,其列为:数据值,标签和饼图颜色值。颜色值将是在Access表单属性中看到的相同数字。

谢谢,

史蒂夫

4 个答案:

答案 0 :(得分:2)

Sub a()
    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.SeriesCollection(1).Points.Item(1).Interior.ColorIndex = 7
End Sub  

您可以使用This Other Answer

中发布的技巧了解 ColorIndex 所代表的颜色

答案 1 :(得分:2)

也许在这些方面有什么意义?

Dim ws As Worksheet
Dim sh As Shape

Set ws = Sheet2
Set sh = ws.Shapes.AddChart '.Select

With sh.Chart
    .ChartType = xlPie
    .SetSourceData Source:=Range("Sheet1!$A$1:$B$3")

    For i = 1 To .SeriesCollection(1).Points.Count
        With .SeriesCollection(1).Points(i).Format.Fill
            .ForeColor.RGB = Range("C" & i).Interior.Color

            .Solid
        End With
    Next
End With

这将允许您使用填充按钮为单元格添加颜色,并将其用于细分。

答案 2 :(得分:0)

首先,我知道可以做到。 BeGraphic有一个免费的Excel加载项,其功能是在spreadhseet中设置图表元素颜色。见:

这使用加载项。我必须说结果令人印象深刻。对于我自己,我需要更多的Excel- 原生,其他许多人会发现这个选项是顶级的。

虽然来自Remou的VB选项和begraphic的加载项做了契约。对我来说,或者至少是目前的项目,我需要一个基于Excel的解决方案(尽可能多的是可行的)。与此同时,您和我自己可以通过VB,VBA,.Net和/或宏找到解决方法。访问Jon P的网站以获取可用选项。

如果我发现' more ' - 我会在此查询中将其传回。

aloha

答案 3 :(得分:0)

也许可以在使用VBA时完成,但在这里我提出了另一种解决方案,可以使用 JavaScript 来实现。您可以使用名为Funfun的免费Excel加载项,它允许您直接在Excel中使用JavaScript代码。话虽这么说,你可以使用像HighCharts.js或D3.js这样的库来绘制饼图并单独控制颜色。以下是我根据您的描述制作的示例。

enter image description here

饼图不同部分的颜色由电子表格中第三列的数据决定。在这个例子中,我使用HighCharts.js来控制绘制这个图表。控制颜色的具体代码如下所示。

  var pieColors =[];
  for(var i=1;i<data.length;i++){
    switch(parseInt(data[i][2])){
      case 0:
        pieColors.push('blue');
        break;
      case 1:
        pieColors.push('green');
        break;
      case 2:
        pieColors.push('orange');
        break;
      case 3:
        pieColors.push('purple');
        break;
      case 4:
        pieColors.push('red');
        break;
      case 5:
        pieColors.push('brown');
        break;
    }
  }

在这个例子中,我只是手动选择了六种颜色,但您可以通过JavaScript代码轻松生成特定范围内的随机颜色或颜色。

Funfun加载项还有一个在线编辑器,您可以使用您的代码和结果进行测试。您可以在下面的链接中查看详细代码和此示例。

https://www.funfun.io/1/#/edit/5a4f4680c3a8a526caeec989

对结果满意后,您可以使用上面的链接轻松将结果加载到Excel中。但是,当然,首先,您需要通过插入 - Office加载项将Funfun加载项添加到Excel中。以下是一些屏幕截图,展示了如何将示例加载到Excel中。

enter image description here

enter image description here

披露:我是Funfun的开发者