Диапазон графиков Excel VBA, который перемещается вниз при обновлении, всегда показывая данные за 2 месяца - PullRequest
0 голосов
/ 11 сентября 2018

Я построил кластеризованную диаграмму в Excel с помощью этого метода: http://www.tushar -mehta.com / excel / charts / stacked_columns.htm

Теперь я хочу, чтобы график был динамичным и отображал ежедневные данные за последние два месяца, но, поскольку у меня есть пустые строки, это сложно с смещением, индексом или менеджером имен. Поэтому я ищу код VBA, который при нажатии кнопки перемещался бы вниз по области графика на один день.

Приведенный ниже код перемещает столбец B (значения продукта 1) только на одну ячейку вниз, но не столбец a, где указаны даты, и столбец c, где указаны значения продукта 2. Я был бы очень признателен за помощь. Заранее спасибо.

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

1 Ответ

0 голосов
/ 12 сентября 2018

Вы были в порядке, насколько вы пошли. Но вам нужно получить (общие) значения 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...