2

我创建了一个新图表

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

然而,这失败了

方法 Index 对对象 _Chart 无效

我究竟做错了什么?

4

3 回答 3

3

尝试使用这个:

indexOfChart = Shapes.Count

代替

indexOfChart = ActiveChart.Index

Index属性不适用于 Charts 集合:

索引属性

Tab对象在Tabs集合中的位置或Page对象在Pages集合中的位置。

阅读更多:http: //msdn.microsoft.com/en-us/library/office/ff194426.aspx

于 2013-02-21T16:01:27.097 回答
2

索引是 ChartObject 类的一个属性。

Chart 是 ChartObject 类的成员。

因此,当您使用 Chart 对象时,您必须像这样在层次结构中提升一个级别:

indexOfChart = ActiveChart.Parent.Index
于 2013-12-06T17:48:22.040 回答
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
于 2013-02-21T18:29:02.060 回答