【发布时间】:2018-09-08 15:29:35
【问题描述】:
我想在 3D 条形图上绘制一系列现金流。 我将图表的数据源设置为包含从 Yr 0 到 Yr 7 的现金流的单元格范围。
但是,我想根据现金流是否为负来更改条形的颜色。
我正在考虑使用 For Each 循环和 If/Else 来执行此操作,但我不知道如何引用每个条的值。请帮忙。
我有现金流,例如-1000、100、500、650、300、400、200 我有以下代码:
Dim j As Integer
Dim cell As Range
Dim flows As Range
Set flows = Worksheets("Data Input").Range("B2:B8")
For Each cell In flows
For j = 1 To 7
If cell.Value < 0 Then
Worksheets("Output").ChartObjects("Chart 1").Activate
ActiveChart.FullSeriesCollection(1).Select
ActiveChart.FullSeriesCollection(1).Points(j).Select
With Selection.Format.Fill
.ForeColor.RGB = RGB(255, 0, 0)
End With
ElseIf cell.Value > 0 Then
Worksheets("Output").ChartObjects("Chart 1").Activate
ActiveChart.FullSeriesCollection(1).Select
ActiveChart.FullSeriesCollection(1).Points(j).Select
With Selection.Format.Fill
.ForeColor.RGB = RGB(0, 255, 0)
End With
End If
Next j
Next cell
应该发生的情况是第一个条变为红色,因为现金流为负数,其余的应该变为绿色。 代码运行,但条形图仍为默认蓝色...
【问题讨论】:
-
我不明白为什么这个问题被判定为“过于宽泛”。