你能按时间序列循环一系列数据吗?

时间:2014-08-15 14:43:24

标签: vba charts

有谁知道如何循环"范围"?

我有超过100年的月度时间序列数据。只有X和Y变量。而且我想为每一年创建一个图表。这是创建其中一个图表的简单代码......

    ActiveSheet.Range("A3:B14").Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlXYScatter
    ActiveChart.ApplyLayout (4)
    ActiveChart.Legend.Delete
    Dim a As Range
      Dim b As ChartObject
      Set a = ActiveSheet.Range("D3:J19")
      Set b = ActiveChart.Parent
      b.Height = a.Height 
      b.Width = a.Width   
      b.Top = a.Top       
      b.Left = a.Left     

问题是这只是一年中的一年,而且重复这段代码100次是没有意义的。

我希望我已经清楚地描述了这个问题,如果有人有解决方案来循环这个过程,那将非常有帮助。

1 个答案:

答案 0 :(得分:0)

我假设您的数据在A列中按顺序排列。

我要做的是使用范围对象来表示范围的左上角,并使用偏移量。我还清理了你对select和active *的使用,这可能非常容易出错 。     Dim wksht As Worksheet     昏暗的细胞作为范围     Dim cht As Chart     昏暗的范围     Dim b As ChartObject

Set wksht = ActiveSheet
Set cell = wksht.Range("A3")

Do While (Not IsEmpty(cell))
    cell.Resize(12, 2).Select
    Set cht = wksht.Shapes.AddChart.Chart
    With cht
        .ChartType = xlXYScatter
        .ApplyLayout (4)
        .Legend.Delete
    End With
    Set a = cell.Offset(0, 3).Resize(17, 7)
    Set b = cht.Parent
    b.Height = a.Height
    b.Width = a.Width
    b.Top = a.Top
    b.Left = a.Left
    Set cell = cell.Offset(12, 0)
Loop