Имя серии диаграмм ссылка на адрес ячейки Excel 2010 VBA

Я использую Excel 2010.

У меня есть точечная диаграмма XY, построенная и отформатированная так, как мне нравится. Я повторно использую эту диаграмму много раз, поэтому я просто копирую и вставляю диаграмму в новый лист, содержащий новые данные, которые я хочу построить. После вставки диаграммы в новый лист я использую следующий макрос для обновления диаграммы новыми данными:

Sub DasyLabOilFDa()

Dim SeriesName As Range
Dim FirstSeriesValues As Range
Dim ElapsedTime As Range

'find cell addresses of elapsed time column
Range("C1").Select 'pick cell above the elapsed time column
Selection.End(xlDown).Select 'pick the elapsed time column header
ActiveCell.Offset(1, 0).Select 'selects first data value in Elapsed Time column
Set ElapsedTime = Range(Selection, Selection.End(xlDown)) 'set ElapsedTime variable to the range of data

'find cell addresses for FirstSeries in the top chart
Range("D1").Select 'pick cell above the first series column
Selection.End(xlDown).Select 'pick the first series column header
Set SeriesName = ActiveCell 'set SeriesName variable to the name of the data column's header
ActiveCell.Offset(1, 0).Select 'selects first data value in data column
Set FirstSeriesValues = Range(Selection, Selection.End(xlDown)) 'set FirstSeriesValues variable to the range of data

ActiveSheet.ChartObjects("TopFDa").Select
ActiveChart.SeriesCollection(1).Name = SeriesName
ActiveChart.SeriesCollection(1).Values = FirstSeriesValues
ActiveChart.SeriesCollection(1).XValues = ElapsedTime

End Sub

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

после запуска макроса диаграмма будет корректно называть имя серии, как показано в легенде (название серии было определено заголовком столбца данных)

проблема в том, что имя ряда не ссылается на адрес ячейки. Когда я смотрю на редактирование серии, поле ввода имени серии пустое.

Как я могу изменить свой код так, чтобы результирующая диаграмма ссылалась на адрес ячейки заголовка столбца в качестве имени ряда?

20
задан Armadillo
06.03.2023 0:01 Количество просмотров материала 3486
Распечатать страницу

2 ответа

Я проверил ссылку разработчика Excel в своей копии Excel 2007 и в документации для серии.Имя свойства гласит следующее:

Примечания

вы можете ссылаться, используя нотацию R1C1, например, " =Sheet1!R1C1".

Я проверил это, и это работает для меня: я установил его в определенную ячейку, и когда я изменил текст в этой ячейке, заголовок серии автоматически обновляется.

в вашем случае вы должны используйте

ActiveChart.SeriesCollection(1).Name = "='" & ActiveSheet.Name & "'!" & SeriesName.Address(,,xlR1C1)
1
отвечен Scarlet Manuka 2023-03-07 07:49

@jakemcgregor ваше имя серии пусто, потому что вы не выбрали заголовок, поэтому по умолчанию Excel задает имя серии пустым.

почему у вас выбор такой? вы могли бы просто:

Dim rETime as Range
' Set your default Range
rETime = Range("C1").End(xlDown).Offset(1,0)
'' with this you don't need to do every time
Set ElapsedTime = Range(rETime, rETime.End(xlDown))
Set FirstSeriesValues = Range(rETime.Offset(0,1), _  
                                rETime.Offset(0,1).End(xlDown))
-1
отвечен Rafa Barragan 2023-03-07 10:06

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

Ваш ответ

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

Имя

Похожие вопросы про тегам:

charts
macros
microsoft-excel
microsoft-excel-2010
vba
Вверх