Изменить диапазон данных в диаграмме с помощью VBA - PullRequest
0 голосов
/ 20 сентября 2018

Уже несколько часов я борюсь с тем, что я считаю серьезной проблемой, так как я совсем не знаком с объектом Chart в VBA.

Вот мой график:

enter image description here

Что я хочу сделать: Изменить диапазон данных двухось, проблема в том, что не могу придумать, как редактировать серию диаграммы.

Спасибо за вашу помощь!

Ответы [ 2 ]

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

Вы сказали, что хотите изменить

= SERIES ("SO2 U5", 'CEMS_U6_YTD 2018'! $ B $ 2165: $ B $ 2303, 'CEMS_U5_YTD 2018'! $ D $ 2165: $ D $ 2312,1)

к этому

= SERIES ("SO2 U5", "CEMS_U6_YTD 2018"! $ C $ 2165: $ C $ 2303, 'CEMS_U5_YTD 2018'! $ D $ 2165: $ D $ 2312,1)

Это может быть просто, как

ActiveChart.SeriesCollection(1).Formula = _
  "=SERIES(""SO2 U5"",'CEMS_U6_YTD 2018'!$C$2165:$C$2303,'CEMS_U5_YTD 2018'!$D$2165:$D$2312,1)"

примечание удвоение двойных кавычек вокруг названия серии.

Однако, так как вы изменяете только значения X,Вы можете использовать это:

ActiveChart.SeriesCollection(1).XValues = "='CEMS_U6_YTD 2018'!$C$2165:$C$2303"

или

ActiveChart.SeriesCollection(1).XValues = Worksheets("CEMS_U6_YTD 2018").Range("$C$2165:$C$2303")

Я написал учебник по редактированию формул рядов с помощью VBA: Изменение формулы серии - Улучшенные подпрограммы .

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

Вы можете использовать

With Workbooks(bookname).Charts(Chartname)
    .SeriesCollection.NewSeries
    .SeriesCollection(i).XValues = YourXs
    .SeriesCollection(i).values = YourYs
end with

Вы можете выбрать, какую серию вы хотите редактировать, используя индекс i.Это фактически устанавливает пары (X, Y), в то время как то, что ниже, только изменяет диапазон, показанный графиком.

Чтобы изменить границы вашей оси Y, вы можете использовать

.Axes(xlValue).MinimumScale = 
.Axes(xlValue).MaximumScale = 

Чтобы изменитьграницы вашей оси х использовать

.Axes(xlCategory).MinimumScale = 
.Axes(xlCategory).MaximumScale = 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...