Связывание имени ряда диаграммы с диапазоном через VBA

Я хотел бы связать имя серии диаграмм с диапазоном на моем листе, но не всю строку в этом диапазоне. Например, вместо связывания имени с ячейкой, содержащей "201601", я хочу, чтобы имя серии было 2016. Я попытался использовать Left(cell,4) при назначении имени, но это дает мне ошибку.

текущий код VBA

Sub changeLinks()
For i = 1 To ActiveSheet.ChartObjects.Count
    ActiveSheet.ChartObjects(i).Chart.SeriesCollection(1).Name = "=Left(" & Range("P18").Address(, , , True) & ",4)"
    ActiveSheet.ChartObjects(i).Chart.SeriesCollection(2).Name = "=Left(" & Range("I18").Address(, , , True) & ",4)"
    ActiveSheet.ChartObjects(i).Chart.SeriesCollection(3).Name = "=Left(" & Range("B18").Address(, , , True) & ",4)"
Next i    
End Sub

Как я могу изменить свой код для этого?

29
задан Excellll
23.05.2023 22:54 Количество просмотров материала 3161
Распечатать страницу

2 ответа

когда вы называете SeriesCollection.Name, что Excel делает это обновление SERIES() функция, определяющая серию. SERIES() не может принимать функции для Аргументов. Он может принимать только диапазон, именованный диапазон или строковый аргумент.

вам нужно сделать это в два этапа, как это:

Sub changeLinks()
Dim i&
Dim name1$, name2$, name3$

name1 = Left(Range("P18").Value, 4)
name2 = Left(Range("I18").Value, 4)
name3 = Left(Range("B18").Value, 4)

For i = 1 To ActiveSheet.ChartObjects.Count
    ActiveSheet.ChartObjects(i).Chart.SeriesCollection(1).Name = name1
    ActiveSheet.ChartObjects(i).Chart.SeriesCollection(2).Name = name2
    ActiveSheet.ChartObjects(i).Chart.SeriesCollection(3).Name = name3
Next i
End Sub
1
отвечен Kyle 2023-05-25 06:42

вам нужно поместить формулу в другую ячейку. Например, в P17 поставьте такую формулу:

=LEFT(P18,4)

затем используйте P17 в качестве диапазона, содержащего имя ряда (в диалоговом окне Выбор данных). При изменении P18 изменится формула в P17, а также имя ряда на диаграмме.

0
отвечен Jon Peltier 2023-05-25 08:59

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх