excel - Series.Format.Fill.Transparency 属性不应用格式
问题描述
我有一个图表,我在其中创建了许多使用该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
解决方案
看来我可能已经解决了这个问题。出于某种原因,如果要使用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 with
推荐阅读
- javascript - 因异常 TypeError 暂停:document.getElementById(...) is null
- mathematical-optimization - 最优碱基对偶值
- asp.net - 如何在不使用脚本的情况下从 ASP.NET 创建新的 SQL Server 数据库
- javascript - 如何使用 chart.js 删除图表实例
- sql - postgres 更新的性能问题
- python - 图片格式不对?
- python - 通过 Librosa 检测发病时间
- hibernate - QueryDsl 获取惰性属性
- python - 如何在字符串中模拟 DELETE 击键?
- oracle - 在交互式网格 Oracle APEX 中未触发列验证