我希望能够以编程方式控制饼图中各部分的颜色。理想情况下,我的图表将基于一个3列表,其列为:数据值,标签和饼图颜色值。颜色值将是在Access表单属性中看到的相同数字。
谢谢,
史蒂夫答案 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这样的库来绘制饼图并单独控制颜色。以下是我根据您的描述制作的示例。
饼图不同部分的颜色由电子表格中第三列的数据决定。在这个例子中,我使用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中。
披露:我是Funfun的开发者