我有一个动态直方图(柱形图),使用 Access 中的现代图表对象,运行良好。但是,随着用户使用表单右上角的组合框选择的每个系列,列的内部颜色会有所不同。(参见下图)。 图1. 图2.
根据我的研究,我可以使用 VBA for Access 中提供的格式选项来控制的内容存在很大的限制。 Microsoft 的支持站点列出了图表对象的一个名为
ChartSeries
的属性,而该属性又具有 FillColor
属性。使用的语法是:
*expressions*.ChartSeries.FillColor
其中表达式表示图表对象。当我尝试使用这些属性时,收到“运行时错误 438:对象不支持该属性或方法”。对于声明.ChartSeries.FillColor = lngBlue
。 我的代码如下。
Private Sub cbo_ShipType_Change()
Dim strSQL As String, cht As Chart, lngBlack As Long, lngBlue As Long
lngBlack = RGB(0, 0, 0)
lngBlue = RGB(0, 0, 256)
Set cht = Me.cht_ShipType
strSQL = "SELECT tbl_ChartData.[YR], " & cbo_ShipType & " FROM tbl_ChartData"
cht.RowSource = strSQL
With cht
.ChartTitle = cbo_ShipType & " Fleet Size"
.PrimaryValuesAxisFontSize = 14
.PrimaryValuesAxisFontColor = lngBlack
.CategoryAxisFontSize = 12
.CategoryAxisFontColor = lngBlack
.ChartSeries.FillColor = lngBlue
.Requery
End With
End Sub
有谁知道我是否或如何调整数据系列列的颜色?
首先,在 VBA 编辑器中,转到“工具”-->“引用”,然后添加
Microsoft Office 16.0 对象库
Microsoft Excel 16.0 对象库
这将启用接下来将使用的
seriesCollection
命令:
Dim grphChart As Object
Dim j As Integer
Set grphChart = Me.cht_ShipType
For j = 1 To grphChart.seriesCollection.Count
With grphChart.seriesCollection(j)
'Set the color
.Interior.Color = vbBlue 'RGB(0, 0, 256)
'Bar border color
'.Border.Color = vbBlue 'RGB(0, 0, 256)
End With
Next j