将数据添加到excel中的现有Seri​​esCollection

时间:2014-09-11 13:27:13

标签: excel vba excel-vba

我正在从Excel工作表中的数据创建图表。一切正常。但现在我想删除低于限制的值并将其显示为“其他”。删除它们有效,但我不知道如何添加额外的“其他”值。

这是代码的一部分:

Co.chart.SetSourceData Source:=DataSource
Co.chart.ChartTitle.Text = "Best selling games"
Co.chart.SeriesCollection(1).ApplyDataLabels ShowPercentage:=True, ShowValue:=False

For Each d In Co.chart.SeriesCollection(1).DataLabels
  v = CLng(Split(d.Caption, "%")(0))
  If v < 10 Then
    Rest = Rest + v
    d.Delete
  End If
Next
If Rest > 0 Then
    Co.chart.SeriesCollection(1).DataLabels.AddData("Others",Rest); ' HERE    
End If

在倒数第二行是一些关于我想要实现的伪代码。

1 个答案:

答案 0 :(得分:0)

我找到了一个“脏”的解决方案。我没有删除第一个项目,而是将其重命名为“其他”而不是删除它,然后添加“其他”:

For Each d In Co.chart.SeriesCollection(1).DataLabels
                Counter = Counter + 1
                v = CLng(Split(d.Caption, "%")(0))
                If v <= 10 Then
                    If RestPos < 0 Then
                        RestPos = Counter
                    Else
                        d.Delete
                    End If
                    Rest = Rest + v

                End If
            Next
            If Rest > 0 Then
                Co.chart.SeriesCollection(1).DataLabels(RestPos).Caption = Rest & " %"

结束如果