VBA动态XY系列绘图

时间:2014-07-03 15:14:18

标签: excel vba plot

我有一些代码可以将多个系列的数据绘制到单个图表中,所有这些都来自数据的2列(X和Y值)。我现在设置它使得if语句检查另一列数据中单个系列的常量“ID”,并且一旦“ID”改变以表示新系列,将绘制一个新系列,然后将绘制图表。

代码将循环显示,我可以观察它在图表上绘制我想要的每个系列,但是在执行图表之后,只会绘制两列中的最后一个系列。之后我可以检查图表,看看系列是否已经生成,但除了列中的最后一个,它们都是无数据的。以下是我的代码,我感谢任何评论。

    For i = datastart To dataend
            If ws1.Cells(i, 3).Value <> ws1.Cells(i + 1, 3).Value Then
                    Z = i - k + j
                    t = i - k + 1

                    With Chart5
                       .PlotArea.Select
                       .SeriesCollection.NewSeries
                       .SeriesCollection(t).Name = ws1.Cells(i, 3).Value
                       .SeriesCollection(t).XValues = "=Data!$G$" & Z & ":$G$" & i
                       .SeriesCollection(t).Values = "=Data!$F$" & Z & ":$F$" & i
                    End With
                    j = i
            Else
                    k = i
            End If
       Next i

我目前正在努力实现这一目标。

1 个答案:

答案 0 :(得分:0)

这个怎么样:

    ' ... some other code

    .SeriesCollection.newSeries
    t = .SeriesCollection.Count
    .SeriesCollection(t).Name = ws1.Cells(i, 3).Value
    .SeriesCollection(t).XValues = "=Data!$G$" & z & ":$G$" & i
    .SeriesCollection(t).Values = "=Data!$F$" & z & ":$F$" & i

    ' ... some other code