1

Я использую 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

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

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

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

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

2 ответа2

1

Я проверил Справочник разработчика Excel в своей копии Excel 2007 и в документации для серии.Название недвижимости это говорит так:

замечания

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

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

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

ActiveChart.SeriesCollection(1).Name = "='" & ActiveSheet.Name & "'!" & SeriesName.Address(,,xlR1C1)
-1

@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))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .