首页 > 解决方案 > 如何将图表中一个条形的颜色设置为透明?

问题描述

我正在尝试以自动方式打印多个图形,但我不明白如何将只有一个条形的颜色设置为透明。我使用 Array(RGB(x,y,z)) 来设置其他条的颜色。


Dim Srs As Series

    Dim vColor
    Dim i As Integer

    vColor = Array(RGB(255, 255, 255), RGB(214, 212, 221), RGB(155, 153, 172), RGB(255, 71, 19))


    With Cht
        .ChartType = xlColumnStacked
        .HasLegend = False
        .HasTitle = True
        .ChartTitle.Text = Target.Value
        .ChartTitle.Font.Size = 11
        .ChartTitle.Font.Bold = True
        .ChartTitle.Font.Name = "BLK Fort"
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "OCF Percentiles"
        .Axes(xlValue).MajorUnit = 50
        For Each Srs In .SeriesCollection
            Srs.Delete
        Next Srs

        For i = 0 To 2
            Set Srs = .SeriesCollection.NewSeries
            With Srs
                .Values = Target.Offset(0, 1).Resize(3).Offset(0, i)
                .XValues = Array("A", "D", "I")
                .Format.Fill.ForeColor.RGB = vColor(i)
            End With


        Next i
        Set Srs = .SeriesCollection.NewSeries
        With Srs
            .ChartType = xlXYScatter
            .Values = Target.Offset(0, 4).Resize(1, 3)
            .MarkerStyle = xlMarkerStyleCircle
            .MarkerSize = 6
            .MarkerBackgroundColor = vColor(3) ' red
        End With
    End With
End Sub 

这是输出,但我希望空白栏是透明的。

在此处输入图像描述

标签: excelvbagraph

解决方案


您可以调整第一个集合的透明度。

   For i = 0 To 2
        Set Srs = .SeriesCollection.NewSeries
        With Srs
            .Values = Target.Offset(0, 1).Resize(3).Offset(0, i)
            .XValues = Array("A", "D", "I")
            .Format.Fill.ForeColor.RGB = vColor(i)
            If i = 0 Then
                .Format.Fill.Transparency = 1 '<~~~~~ Transparency was adjusted
            End If
        End With
    Next i

推荐阅读