我想根据图表值更改瀑布图的颜色。
例如,如果值为负,则设置红色。如果值为正,则设置绿色。
我从下面得到了代码excel vba根据点值更改数据点的条形图颜色 https://stackoverflow.com/questions/13849488/excel-vba-changing-bar-chart-color-for-a-data-point-based-on-point-value
此代码适用于条形图。但是,我无法将它与瀑布一起使用,因为它显示错误“对象不支持此操作”
有谁知道如何配置它以与瀑布一起使用?任何建议将不胜感激!
Thanks,
Sub color_chart()
Dim chartIterator As Integer, pointIterator As Integer, _
seriesArray() As Variant
For chartIterator = 1 To ActiveSheet.ChartObjects.Count
seriesArray = ActiveWorkbook.Sheets("Sheet1").ChartObjects(chartIterator). _
chart.SeriesCollection(1).Values
For pointIterator = 1 To UBound(seriesArray)
If seriesArray(pointIterator) >= 0 Then
ActiveWorkbook.Sheets("Sheet1").ChartObjects(chartIterator). _
chart.SeriesCollection(1).Points(pointIterator).Interior.Color = _
RGB(146, 208, 80)
Else
ActiveWorkbook.Sheets("Sheet1").ChartObjects(chartIterator). _
chart.SeriesCollection(1).Points(pointIterator).Interior.Color = _
RGB(255, 0, 0)
End If
Next pointIterator
Next chartIterator
End Sub
这是我使用的代码。它与瀑布一起使用
Sub cht_loop()
Dim i As Integer
Dim cht As Chart
Set cht = Sheets("sheet1").ChartObjects("Chart 10").Chart
For i = 1 To 5
If Sheets("Sheet1").Range("B" & i + 1).Value < 0 Then
With cht.SeriesCollection(1).Points(i).Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(192, 0, 0)
End With
Else
With cht.SeriesCollection(1).Points(i).Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 80)
End With
End If
Next i
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)