在vba中为图例设置颜色代码
我在每个工作表中都有透视表,我必须对它们进行比较,但每个工作表中图例的颜色不同。 如何设置颜色 例如,如果我的图例条目是“ISO”,我希望它始终是“蓝色”,如果它是“LAT”,我希望它在每张图纸中都是“红色”在vba中为图例设置颜色代码,vba,excel,charts,pivot-table,Vba,Excel,Charts,Pivot Table,我在每个工作表中都有透视表,我必须对它们进行比较,但每个工作表中图例的颜色不同。 如何设置颜色 例如,如果我的图例条目是“ISO”,我希望它始终是“蓝色”,如果它是“LAT”,我希望它在每张图纸中都是“红色” 这可以通过操作图表的系列集合属性中的系列对象来完成 我在下面编写了一个简短的示例方法,它采用工作表、图例名称和目标RGB颜色。它循环工作表的形状,如果它们包含图表,则查找具有指定的legendName的Series。如果合适,它会将前景色更改为指定的RGB颜色 Private Sub Fo
这可以通过操作
图表的系列集合属性中的系列对象来完成
我在下面编写了一个简短的示例方法,它采用工作表、图例名称和目标RGB颜色。它循环工作表的形状,如果它们包含图表,则查找具有指定的legendName
的Series
。如果合适,它会将前景色更改为指定的RGB颜色
Private Sub FormatShapeLegend(sheet As Worksheet, legendName As String, targetColor As MsoRGBType)
Dim shp As Shape
Dim chrt As Chart
Dim s As Series
For Each shp In sheet.Shapes
If shp.HasChart Then
Set chrt = shp.Chart
'Loop the dataseries to find the legend with the desired name.
For Each s In chrt.SeriesCollection
'If the name fits, go ahead and format the series.
If LCase(s.Name) = LCase(legendName) Then
s.Format.Fill.ForeColor.RGB = targetColor
End If
Next
End If
Next
End Sub
用法示例:
FormatShapeLegend ActiveSheet, "ISO", RGB(0, 0, 255)