问题:
我使用Excel 2010和多个数据透视表生成报告。当我生成报告时,我无法将数据透视表系列的颜色设置为静态值。有时候“Pass”系列显示为“RED”,这会造成混乱。
我尝试使用下面的代码强制更改系列中的颜色:
Sheets("PSD").Select
ActiveSheet.ChartObjects("Chart 5").Activate
ActiveChart.SeriesCollection(1).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 80)
.Transparency = 0
.Solid
End With
代码的问题是 SeriesCollection(1)并不总是我想要的系列,当我将代码更新为SeriesCollection(“Pass”)时,它不起作用。
我需要找到一种方法来按名称引用 SeriesCollection ,如果没有,我可以继续使用 On Error Resume Next 无需检查它。
答案 0 :(得分:2)
要通过它的名称来处理系列,你可以这样做:
Sub cht()
Dim cht As Chart
Set cht = Sheets("PSD").ChartObjects("Chart 5").Chart
Dim ss As Series
Set ss = cht.SeriesCollection("Pass")
With ss.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 80)
End With
End Sub
在:
后:
答案 1 :(得分:0)
我只是在研究这个。
您可以评估索引系列集合的名称,然后根据它进行操作。这是我的 8 个(硬编码)情况的示例,这些情况是我的系列可能性,但我想它可以以某种方式是动态的。
Sub Format_GraphPertes_TRG(PV_Chart_Name)
On Error Resume Next
Dim i
ActiveSheet.ChartObjects(PV_Chart_Name).Activate
'== Balayage des legendes dans le chart
For i = 1 To 8
ActiveChart.FullSeriesCollection(i).Select
'MsgBox ActiveChart.FullSeriesCollection(i).Name
Select Case Left(ActiveChart.FullSeriesCollection(i).Name, 2)
Case "01"
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 80)
.Transparency = 0
.Solid
End With
Case "02"
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Solid
End With
Case "03"
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 255, 0)
.Transparency = 0
.Solid
End With
Case "04"
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(174, 171, 171)
.Transparency = 0
.Solid
End With
Case "05"
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(72, 161, 250)
.Transparency = 0
.Solid
End With
Case "06"
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(201, 43, 152)
.Transparency = 0
.Solid
End With
Case "07"
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(47, 103, 153)
.Transparency = 0
.Solid
End With
End Select
Next
End Sub