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
我用这种方法在 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