我有一个图表,我在其中创建了许多使用Chart.SeriesCollection.NewSeries方法的新系列,然后立即格式化每个系列。我通过Series.Format.Fill.Transparency属性设置的所有格式似乎都有效(标记大小/样式/颜色)条标记透明度。
我见过一些人使用选择方法来设置系列标记透明度,如下所示:
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 = CommonMarkerTrans将Series.Format.Fill.Transparency属性设置为CommonMarkerTrans时,该属性似乎没有从其初始值更改
注:CommonMarkerTrans= 0.9表示为单
有人知道为什么会这样吗?我真的被难住了,这可能与我设置标记格式的顺序有关吗?
下面显示了提供上下文的代码片段。代码创建一个“空”图表序列,然后应用各种格式,例如标记大小,然后从存储在两个单独数组中的数据设置序列X和Y值。
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发布于 2019-07-06 21:51:51
看起来我可能解决了这个问题。由于某些原因,如果要使用Fromat.Fill. Transparency设置系列标记的透明度,则必须使用以下属性来设置系列标记的/背景颜色
Series.Format.Fill.ForeColor.RGB = RGB(R,G,B)
Series.Format.Fill.BackColor.RGB = RGB(R,G,B)而不是
Series.MarkerBackgroundColor = RGB(R,G,B)
Series.MarkerForegroundColor = RGB(R,G,B)不确定为什么会这样,有两个单独的属性来为/背景颜色设置标记,而不能为这两个属性都设置透明度,这似乎很令人困惑。
为什么同一件事需要两个独立且互斥的属性呢?为了清楚起见,也许有人可以澄清这一点或纠正我的理解?
现在可以正确设置颜色和透明度的功能代码:
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 withhttps://stackoverflow.com/questions/56905151
复制相似问题