我希望找到一种自动方式,根据与图表本身无关的单元格中的值和/或颜色,在Excel中对图表上的线条进行着色。基于价值的颜色是理想的解决方案。
以下链接中图表的数据位于单元格B2:F9中,我想要表示的颜色位于C1:F1行。基于此图像,我希望表示行C和E的图表线为绿色,表示D和F的图表线为红色。
为了给通过/失败部分着色我目前有条件格式设置,但我可以更改它以获得更有效的解决方案。这需要在大量报告中进行扩展,因此手动换色不是一种可行的选择。
非常感谢任何协助。
答案 0 :(得分:1)
以下是一些示例代码,它们应该指向正确的方向。它会根据电子表格中其他位置的值更改系列的颜色。理想情况下,您可以根据自己的需要进行修改。我试图强调迭代系列并根据外部范围着色它们的关键步骤。关于选择图表和范围还有其他问题。
我正在使用“标题”单元格的值(通过/失败)来选择颜色。我认为通过条件格式化(IIRC?)格式化单元格的Interior
颜色可能很困难。
Sub ColorChartBasedOnOtherCells()
'set up a range of colors that "matches" the series
Dim rng_colors As Range
Set rng_colors = Range("C1:F1")
'get a reference to the chart... assume it is selected for now
Dim cht As Chart
Set cht = ActiveChart
Dim ser As Series
Dim int_index As Integer
'iterate through series in order... assume this matches the column order
int_index = 1
For Each ser In cht.SeriesCollection
'check the value of the "reference-color" cell and set series color
If rng_colors(int_index) = "pass" Then
ser.Format.Line.ForeColor.RGB = RGB(255, 0, 0)
Else
ser.Format.Line.ForeColor.RGB = RGB(0, 255, 0)
End If
int_index = int_index + 1
Next ser
End Sub