VBA:每周更新的仪表板。复制Trendline的数据。 EXCEL

时间:2014-07-23 12:25:26

标签: excel vba excel-vba

我已经设法使用VBA在Excel中创建一个易于更新的仪表板。它非常可靠,但我需要每周更新一次趋势线来添加这些数据。

我想要的是一个执行以下操作的宏:

  1. 将数据写入 X 范围(例如A1:A5)
  2. 将数据范围 X 复制到范围 Y (例如A10:A15)
  3. 然后当我再次执行步骤1和2时

    1. 将数据写入 X 范围(在X A1:A5中覆盖数据)
    2. 将数据从 Y 复制到范围 Y + 1 (例如B10:B15)
    3. 无限重复(每次向右移动一列)

      我得到的是我需要将列线定义为整数然后引用它。 (例如

      Sub Trend()
      
      Dim i As Integer
      i = 2
      Sheets("Data").Select
      Range("A1:A5").Select
      Selection.Copy
      Sheets("Trendline data").Select
      ActiveSheet.Cells(1, i).Select
      
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
          :=False, Transpose:=False 
      
      Sheets("Data").Select
      i = i + 1
      
      End Sub
      

      然而重复这个宏不会增加我的力量。

      ~~第2列也完全填满(数据!A1:A5)~~ 中的数据 这是通过更新代码来解决的。

      我需要解决的问题是该行

       "Dim i As integer" 
       i = 2
      

      变为

      "Dim i As integer" 
       i = 3
      

      永久,并在下一次重复i = 4,i = 5等。

      之后对我来说很容易从这个范围创建折线图

      谢谢。

      编辑:写了我认为可行的内容,但显然不是

1 个答案:

答案 0 :(得分:0)

已编辑:

怎么样?

Sub Trend()

Dim i as integer

If Sheets("Data").Cells(1,1).Value = "" Then
    Sheets("Data").Cells(1,1).Value = 1
End if

i = Sheets("Data").Cells(1,1).Value


Sheets("Data").Select
Range("A1:A5").Select
Selection.Copy
Sheets("Trendline data").Select
ActiveSheet.Cells(1, i).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False 

Sheets("Data").Select


Sheets("Data").Cells(1,1).Value = i + 1

End Sub