Макрос для выбора последней точки данных на линейной диаграмме и добавления метки данных

У меня есть линейная диаграмма с 60 различными рядами данных в Excel, которая обновляется раз в неделю. На этом графике я хотел бы запрограммировать макрос, который выбирает самые последние точки данных на линейных графиках и добавляет метку данных в формате 100,00 (число с двумя десятичными знаками).

Сейчас я использую код ниже, чтобы удалить все метки данных:

Sub Delete_labels()

ActiveChart.ApplyDataLabels xlDataLabelsShowNone

End Sub

Чтобы добавить метки данных, я также хотел бы использовать код. Я экспериментировал с кодом ниже:

Sub Add_last_label()

ActiveChart.ApplyDataLabels xlDataLabelsShowLabel, , , , True, False, False, False, False

End Sub

Однако этот код добавляет метки данных к каждой точке данных, создавая огромный беспорядок. Строка ",,,, True, False, False, False, False" должна быть адаптирована для добавления только последней метки данных в диаграмму, но я не уверен, как.

У кого-нибудь есть идеи, как метить данные до последней точки в каждой серии в формате 100,00 (с двумя десятичными точками)?

1 ответ

Я нашел ответ. Код ниже работает:

Sub Update_labels()

ActiveChart.ApplyDataLabels xlDataLabelsShowNone

Dim iSrs As Long
Dim iPts As Long
For iSrs = 1 To ActiveChart.SeriesCollection.Count
With ActiveChart.SeriesCollection(iSrs)
iPts = .Points.Count
With .Points(iPts)
.ApplyDataLabels
' .DataLabel.ShowSeriesName = -1
' .DataLabel.ShowLegendKey = -1

.DataLabel.NumberFormat = "#,##0.00"

'ActiveChart.SeriesCollection(1).DataLabels.NumberFormat = "#,##0.00"

End With
End With
Next

End Sub

Раскомментируйте ShowSeriesName и ShowLegendKey, чтобы также показать эти элементы.

Другие вопросы по тегам