我在每个工作表中都有数据透视表,我必须对它们进行比较,但每个工作表中图例的颜色都不同。 如何设置颜色?
例如,如果我的图例条目是“ISO”,我希望它始终为“蓝色”,如果它是“LAT”,我希望它在每张纸中都为“红色”。
最佳答案
这可以通过操作 Chart
的 SeriesCollection
属性中的 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)
关于vba - 在vba中为图例设置颜色代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34153465/