Мой первый ответ интерпретировал вопрос как запрос названия серии. Если вы хотите использовать диапазон для меток данных, это немного сложнее.
Если у вас Excel 2013, вы можете напрямую назначить диапазон:
With .SeriesCollection(1)
.ApplyDataLabels
With .DataLabels
.Format.TextFrame2.TextRange.InsertChartField _
msoChartFieldRange, "='" & Ws.Name & "'!R1C3:R1C8", 0
.ShowRange = True
.ShowValue = False
End With
End With
Если у вас более ранняя версия Excel, вам нужно пройтись по ярлыкам.
Назначает статический текст ячеек меткам:
Dim iPt As Long
Dim rLabels As Range
Set rLabels = Ws.Range(Ws.Cells(1, 3), Ws.Cells(1, 8))
With .SeriesCollection(1)
.ApplyDataLabels
For iPt = 1 To .Points.Count
.Points(iPt).DataLabel.Text = rLabels.Cells(iPt).Text
Next
End With
Это связывает каждую метку с соответствующей ячейкой, поэтому метка отражает любые изменения в ячейках:
Dim iPt As Long
Dim rLabels As Range
Set rLabels = Ws.Range(Ws.Cells(1, 3), Ws.Cells(1, 8))
With .SeriesCollection(1)
.ApplyDataLabels
For iPt = 1 To .Points.Count
.Points(iPt).DataLabel.Text = "=" & rLabels.Cells(iPt).Address(, , , True)
Next
End With