Excel堆积条形图基于标签的不同颜色

时间:2017-03-14 15:19:43

标签: excel

我正在尝试在Excel中创建一个Yamazumi图表,通过在堆叠条形图上将元素的时间堆叠在一起来显示作业的元素。我希望能够根据标签而不是我现在获得的彩虹色来为元素着色。例如,当它具有VA时,我希望VA中的所有元素在图中都是绿色的。这是excel中数据的一个示例。

走路并装载购物车NVA 6.35 Excel Data

Excel Data

我试过这个VBA代码,但似乎没有用。我可能不完全理解VBA如何使用变量。具体来说,seriesArray变量抛出错误。任何帮助,将不胜感激。 'code'Sub color_chart()

Dim pointIterator As Integer, _
    seriesArray() As Variant

seriesArray = Worksheets("Chart1").ChartObjects(1).Chart.SeriesCollection(1).Values

    For pointIterator = 1 To UBound(seriesArray)

       If InStr(seriesArray(pointIterator), "VA") > 0 Then
           ActiveWorkbook.Sheets("Sheet1").ChartObjects(chartIterator). _
           Chart.SeriesCollection(1).Points(pointIterator).Interior.Color = _
           RGB(0, 255, 0)
       ElseIf InStr(seriesArray(pointIterator), "NVA") > 0 Then
           ActiveWorkbook.Sheets("Sheet1").ChartObjects(chartIterator). _
           Chart.SeriesCollection(1).Points(pointIterator).Interior.Color = _
           RGB(255, 0, 0)
       Else
           ActiveWorkbook.Sheets("Sheet1").ChartObjects(chartIterator). _
           Chart.SeriesCollection(1).Points(pointIterator).Interior.Color = _
           RGB(235, 235, 235)
       End If

Next pointIterator

结束子'代码'

1 个答案:

答案 0 :(得分:1)

据我所知,在面对这种情况时,你有两种选择:

  • 制作新的'虚拟'要添加到图表中的系列,其中任何位置都与您的数据不对应。使用查找功能(例如index/match)创建与您的类别相对应的其他列(' NVA',' VA',' Wate')。因此,如果您的数据屏幕截图位于A,B,C和D列中,请在E列中添加公式:

    =IF(B2="NVA",C2,"")
    

    并替换" NVA"对于每一列。 不幸的是,由于它处理系列的其他方式,这似乎不适用于您所希望的图形类型(堆积条)。它适用于其他图表类型(here's an example

  • 使用VBA。

    .Chart.SeriesCollection([myseries]).Interior.Color = RGB(155, 187, 89)
    
相关问题