访问VBA-无法访问图表中的Series.Name

时间:2018-10-23 14:31:59

标签: vba access-vba

我正在尝试使用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)的类型不是“系列”。怎么了?

1 个答案:

答案 0 :(得分:0)

一些错误的地方。

在您的代码中grphChartChartObject-图表的容器,而不是图表本身。

代替使用:

grphChart.Chart.SeriesCollection.Count  

grphChart.Chart.SeriesCollection(iii)  

第二个问题是Dim objSeries As Series。您已将问题标记为Access,并且我认为,您的代码引用了Excel。
如果绑定晚了,Access将无法理解Series是什么-您需要将其定义为Object