excel - 如何将图表中一个条形的颜色设置为透明?
问题描述
我正在尝试以自动方式打印多个图形,但我不明白如何将只有一个条形的颜色设置为透明。我使用 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
这是输出,但我希望空白栏是透明的。
解决方案
您可以调整第一个集合的透明度。
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
推荐阅读
- javascript - 使用 material-ui 更改父级中的子组件样式
- node.js - 第一个 node.js 项目无法连接到 mongodb
- javascript - 在警告中打开 jQuery 手风琴面板
- c++ - VSCode“变体不是模板”,如何让vscode检测出来?
- cookies - SameSite Cookie 标头和 Websocket 不起作用
- javascript - JS:为什么删除undefined返回false,删除其他基本数据类型返回true
- kubernetes - Azure Devops Release Pipeline 中的 Kubectl 部署失败,AKS 群集的退出代码为 1
- firebase - 如何从云存储规则中的 Firestone 数据库中获取字段值
- windows - 等待异步批处理任务完成无法正常工作
- react-native - React Native Expo - TypeError:Object(...)不是函数