Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在vba中为图例设置颜色代码_Vba_Excel_Charts_Pivot Table - Fatal编程技术网

在vba中为图例设置颜色代码

在vba中为图例设置颜色代码,vba,excel,charts,pivot-table,Vba,Excel,Charts,Pivot Table,我在每个工作表中都有透视表,我必须对它们进行比较,但每个工作表中图例的颜色不同。 如何设置颜色 例如,如果我的图例条目是“ISO”,我希望它始终是“蓝色”,如果它是“LAT”,我希望它在每张图纸中都是“红色” 这可以通过操作图表的系列集合属性中的系列对象来完成 我在下面编写了一个简短的示例方法,它采用工作表、图例名称和目标RGB颜色。它循环工作表的形状,如果它们包含图表,则查找具有指定的legendName的Series。如果合适,它会将前景色更改为指定的RGB颜色 Private Sub Fo

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

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


这可以通过操作
图表
系列集合
属性中的
系列对象来完成

我在下面编写了一个简短的示例方法,它采用工作表、图例名称和目标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)