首页 > 解决方案 > 从现有 xy 图中删除数据系列

问题描述

我想创建一个代码,从工作表上的现有 xy 图表中删除数据系列。但我不知道这段代码有什么问题。有人请帮助我。

Dim srs As Series
ActiveSheet.ChartObjects("Chart 1").Activate
With ActiveChart
    For Each srs In .SeriesCollection
        If .Name = c Then
        .SeriesCollection(srs).Delete
        End If
    Next
End With

标签: excelvbaexcel-charts

解决方案


当您使用 With [Object] ... End With 时,所有有效的点方法或属性都将附加到该 [Object]

With ActiveChart
    For Each srs In .SeriesCollection
        If .Name = c Then
        .SeriesCollection(srs).Delete
        End If
    Next
End With

实际上,这将变为:

For Each srs In ActiveChart.SeriesCollection
    If ActiveChart.Name = c Then
         ActiveChart.SeriesCollection(srs).Delete
    End If
Next

我认为 ActiveChart.Name 不是您的 IF 语句中要比较的预期属性。

您可以在 IF 中尝试“srs.Name = c”,在其中尝试“srs.Delete”,如下所示:

With ActiveChart
    For Each srs In .SeriesCollection
        If srs.Name = c Then
           srs.Delete
        End If
    Next
End With

请告诉我它是否有效。



推荐阅读