2014-07-03 49 views
0

我有一些代码应该将多个系列的数据绘制到单个图表,所有这些代码都来自2列(X和Y值)的数据。我现在已经设置了if语句来检查另一列数据中单个系列的常量“ID”,并且一旦“ID”发生变化以表示新系列,就会绘制一个新系列,然后会绘制到图表。VBA动态XY系列绘图

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

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 

我目前只是获得这个功能。

回答

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