Excel VBA 图表范围在更新时向下移动,始终显示 2 个月的数据

Excel VBA graph range that moves down when updated always showing 2 months of data

我用这种方法在 excel 中构建了 Stacked cluster 图表:http://www.tushar-mehta.com/excel/charts/stacked_columns.htm

现在我希望图表是动态的并显示最近两个月的每日数据,但由于我有空白行,因此很难使用偏移量或索引或名称管理器。 因此,我正在寻找一个 VBA 代码,它可以在按下按钮时将图表区域向下移动一天。

下面提到的代码仅将 B 列(产品 1 的值)向下移动一个单元格,但不会将日期所在的列和产品 2 的值所在的列 c 向下移动。 非常感谢您的帮助。提前致谢。

Sub moveSelection()
 Dim ss As Series
 Dim strs() As String

 Set ss = ActiveChart.SeriesCollection(1)
 strs = Split(ss.Formula, ",")

 Dim rg As Range
 Set rg = Range(strs(2))
 Set rg = rg.Offset(1, 0)

 ActiveChart.SeriesCollection(1).Values = rg

End Sub

就你而言,你很好。但是您需要从第二个系列中获取(共享的)X 值和 Y 值。

Sub MoveSelection()
  Dim ss1 As Series, ss2 As Series
  Dim strs() As String
  Dim rgX As Range, rgY1 As Range, rgY2 As Range

  Set ss1 = ActiveChart.SeriesCollection(1)
  strs = Split(ss1.Formula, ",")
  Set rgX = Range(strs(1))
  Set rgY1 = Range(strs(2))

  strs = Split(ss2.Formula, ",")
  Set rgY2 = Range(strs(2))

  Set rgX = rgX.Offset(1)
  Set rgY1 = rgY1.Offset(1)
  Set rgY2 = rgY2.Offset(1)

  ss1.XValues = rgX
  ss1.Values = rgY1
  ss2.Values = rgY2
End Sub