首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Series.Format.Fill.Transparency属性不应用格式设置

Series.Format.Fill.Transparency属性不应用格式设置
EN

Stack Overflow用户
提问于 2019-07-05 22:39:41
回答 1查看 959关注 0票数 2

我有一个图表,我在其中创建了许多使用Chart.SeriesCollection.NewSeries方法的新系列,然后立即格式化每个系列。我通过Series.Format.Fill.Transparency属性设置的所有格式似乎都有效(标记大小/样式/颜色)条标记透明度。

我见过一些人使用选择方法来设置系列标记透明度,如下所示:

代码语言:javascript
复制
 Set GraphSeries.Absolute.ErraticErrors = AbsChart.SeriesCollection.NewSeries
With GraphSeries.Absolute.ErraticErrors
    .Name = "ErraticSeries"
    .MarkerSize = CommonMarkerSize
    .MarkerBackgroundColorIndex = Graph.XY.Formatting.MarkerFillColour.ErraticErrors
    .MarkerForegroundColor = Graph.XY.Formatting.MarkerLineColur.ErraticErrors
    .Select
        Selection.Format.Fill.Transparency = CommonMarkerTrans
    .Format.Line.Visible = msoFalse
End With

经过对上述方法的尝试和故障排除后,似乎当设置了标记透明度时,可以看到标记背景颜色改变了值,而不是保持在初始值的透明度,奇怪吗?基于这一发现,我返回到Series.Format.Fill.Transparency = CommonMarkerTrans并在监视窗口中查看此属性,同时将其设置为CommonMarkerTrans,并且观察到初始值of Series.Format.Fill.Transparency (-2.147484E+09)没有变化,这也很奇怪吗?

当尝试通过Series.Format.Fill.Transparency = CommonMarkerTransSeries.Format.Fill.Transparency属性设置为CommonMarkerTrans时,该属性似乎没有从其初始值更改

注:CommonMarkerTrans= 0.9表示为单

有人知道为什么会这样吗?我真的被难住了,这可能与我设置标记格式的顺序有关吗?

下面显示了提供上下文的代码片段。代码创建一个“空”图表序列,然后应用各种格式,例如标记大小,然后从存储在两个单独数组中的数据设置序列X和Y值。

代码语言:javascript
复制
Set GraphSeries.Absolute.ErraticErrors = AbsChart.SeriesCollection.NewSeries
With GraphSeries.Absolute.ErraticErrors
    .Name = "ErraticSeries"
    .MarkerSize = CommonMarkerSize
    .Format.Fill.Transparency = CommonMarkerTrans
    .MarkerBackgroundColorIndex = Graph.XY.Formatting.MarkerFillColour.ErraticErrors
    .MarkerForegroundColor = Graph.XY.Formatting.MarkerLineColur.ErraticErrors
    .Format.Line.Visible = msoFalse
End With

RelOrAbsChart.SeriesCollection(SeriesName.ErraticSeries).XValues = XAxisRelOrAbs.ErraticSeries
RelOrAbsChart.SeriesCollection(SeriesName.ErraticSeries).Values = YAxisRelOrAbs.ErraticSeries
EN

回答 1

Stack Overflow用户

发布于 2019-07-06 21:51:51

看起来我可能解决了这个问题。由于某些原因,如果要使用Fromat.Fill. Transparency设置系列标记的透明度,则必须使用以下属性来设置系列标记的/背景颜色

代码语言:javascript
复制
 Series.Format.Fill.ForeColor.RGB = RGB(R,G,B)
 Series.Format.Fill.BackColor.RGB = RGB(R,G,B)

而不是

代码语言:javascript
复制
Series.MarkerBackgroundColor = RGB(R,G,B)
Series.MarkerForegroundColor = RGB(R,G,B)

不确定为什么会这样,有两个单独的属性来为/背景颜色设置标记,而不能为这两个属性都设置透明度,这似乎很令人困惑。

为什么同一件事需要两个独立且互斥的属性呢?为了清楚起见,也许有人可以澄清这一点或纠正我的理解?

现在可以正确设置颜色和透明度的功能代码:

代码语言:javascript
复制
    Set GraphSeries.Absolute.ErraticErrors = AbsChart.SeriesCollection.NewSeries
    With GraphSeries.Absolute.ErraticErrors
        .Name = "ErraticSeries"
        .MarkerSize = CommonMarkerSize
        .MarkerStyle = xlMarkerStyleCircle
        With .Format.Fill
            .Visible = msoTrue
            .ForeColor.RGB = Graph.XY.Formatting.MarkerFillColour.ErraticErrors
            .BackColor.RGB = Graph.XY.Formatting.MarkerLineColur.ErraticErrors
            .Transparency = CommonMarkerTrans
            .Visible = msoTrue
        End With
    End with
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56905151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档