excel:获取当前图表的索引

时间:2013-02-21 15:39:41

标签: excel vba charts

我使用

创建一个新图表
Sheets("DatenFilledChart").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlArea
ActiveChart.SetSourceData Source:=Range("DatenFilledChart!$B$4:$B$1004")
ActiveChart.SeriesCollection(1).XValues = "=DatenFilledChart!$A$4:$A$1004"
ActiveChart.SeriesCollection(1).Name = "=DatenFilledChart!$B$1"

为了使用当前图表,我想用

保存索引
indexOfChart = ActiveChart.Index

然而

失败了
  

方法索引对于对象_Chart

无效

我做错了什么?

3 个答案:

答案 0 :(得分:3)

尝试使用它:

indexOfChart = Shapes.Count

而不是

indexOfChart = ActiveChart.Index

Index属性不适用于图表集合:

  

索引属性

     

标签集合或页面对象中标签对象的位置   在页面集合中。

了解详情:http://msdn.microsoft.com/en-us/library/office/ff194426.aspx

答案 1 :(得分:2)

Index是ChartObject类的属性。

Chart是ChartObject类的成员。

因此,当你使用Chart对象时,你必须像heirarchy一样升级:

indexOfChart = ActiveChart.Parent.Index

答案 2 :(得分:1)

由于AddChart返回对添加对象的引用,最简单的方法就是使用该引用...

Sub tester()
    Dim co As Shape

    Set co = Sheet1.Shapes.AddChart()
    With co.Chart
        .ChartType = xlArea
        .SetSourceData Source:=Range("Sheet1!$A$1:$B$5")
        .SeriesCollection(1).Name = "Testing"
        'etc etc
    End With
End Sub