Макрос для выбора последней точки данных на линейной диаграмме и добавления метки данных
У меня есть линейная диаграмма с 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, чтобы также показать эти элементы.