将颜色代码设置为vba中的图例

我在每个工作表中都有数据透视表,我必须对它们进行比较,但是每个工作表中图例的颜色是不同的。 如何设置颜色?

例如,如果我的图例条目是“ISO”,我希望它始终是“蓝色”,如果它的“LAT”,我希望它在每张表中“红色”。

在这里输入图像说明

这可以通过操作ChartSeriesCollection属性中的Series对象来完成。

我已经写了一个简短的示例方法,它需要一个工作表,一个图例名称和一个目标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)