我正在尝试使用VBA通过将系列名称与包含每个系列(tblTypes)颜色值的表进行匹配来为图表中的系列着色。我唯一的问题是检索系列名称,我一直阅读的系列名称是通过SeriesCollection(index).Name访问的。奇怪的是,SeriesCollection()似乎没有返回Series对象。以下是相关代码:
Private Sub ReformatColoursByType(grphChart As Object)
Dim rs As DAO.Recordset
Dim iii As Integer
Dim objSeries As Series
Set rs = CurrentDb.OpenRecordset("tblTypes", RecordsetTypeEnum.dbOpenDynaset)
rs.MoveFirst
Do
For iii = 1 To grphChart.SeriesCollection.Count
Set objSeries = grphChart.SeriesCollection(iii) -- !!! This line is the problem !!! --
If objSeries.Name = rs!rwType Then
... formatting ...
End If
Next iii
rs.MoveNext
Loop Until rs.EOF
End Sub
上面突出显示的行返回“类型不匹配”错误-由于某种原因,grphChart.SeriesCollection(iii)的类型不是“系列”。怎么了?
答案 0 :(得分:0)
一些错误的地方。
在您的代码中grphChart
是ChartObject-图表的容器,而不是图表本身。
代替使用:
grphChart.Chart.SeriesCollection.Count
和
grphChart.Chart.SeriesCollection(iii)
第二个问题是Dim objSeries As Series
。您已将问题标记为Access
,并且我认为,您的代码引用了Excel。
如果绑定晚了,Access将无法理解Series
是什么-您需要将其定义为Object
。