我有一个柱/条形图,我想用这种方式将它变成红色和灰色:第一列红色,第二个灰色,第三个红色,第四个灰色,依此类推,直到没有更多值。我正在努力使用宏录制器,因为它指定了每个点,但想法是数据将被更新,并将根据情况将点/值的数量更改为更少或更多。
答案 0 :(得分:1)
您需要编写一个循环遍历图表中系列/点数的代码。下面的代码循环显示选定的图表中的每个系列和/或点,并使用相同的填充颜色格式化每一个条形码。
Sub ColorBarsInChart()
Dim i As Integer
Dim j As Integer
'Exit if no chart is selected
If Not (TypeName(Selection) = "ChartArea" Or TypeName(Selection) = "PlotArea") Then Exit Sub
'If only one series in chart
If ActiveChart.SeriesCollection.Count = 1 Then
For j = 1 To ActiveChart.SeriesCollection(1).Points.Count
If j Mod 2 Then
ActiveChart.SeriesCollection(1).Points(j).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
Else
ActiveChart.SeriesCollection(1).Points(j).Format.Fill.ForeColor.RGB = RGB(127, 127, 127)
End If
Next j
'If more than one series in chart
Else
For i = 1 To ActiveChart.SeriesCollection.Count
For j = 1 To ActiveChart.SeriesCollection(i).Points.Count
If i Mod 2 Then
ActiveChart.SeriesCollection(i).Points(j).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
Else
ActiveChart.SeriesCollection(i).Points(j).Format.Fill.ForeColor.RGB = RGB(127, 127, 127)
End If
Next j
Next i
End If
End Sub
由于我不知道您的特定图表是否包含多个数据系列,因此我已经使代码具有足够的通用性,可以在两种情况下工作。