2

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

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

Я не уверен, как я оборачиваюсь вокруг того, что я сделал.

Любая помощь с благодарностью приветствуется.

Майкл.

Dim MyChart As Chart
Dim ChartPoints As Points
Dim ChartDataLables As DataLabel
'Dim NumberOfSeries As Series

Set MyChart = ActiveSheet.ChartObjects("Chart 1").Chart

'Set NumberOfSeries = MyChart.SeriesCollection.Count

Set ChartPoints = MyChart.SeriesCollection(1).Points
ChartPoints(ChartPoints.Count).ApplyDataLabels
Set ChartDataLables = ChartPoints(ChartPoints.Count).DataLabel

 'For Each NumberOfSeries In MyChart
 With MyChart
     With ChartDataLables
    .Position = xlLabelPositionRight
    .HorizontalAlignment = xlCenter
    .Font.Size = 8
    .NumberFormat = "0.00"
    .ShowSeriesName = True
    .Font.Name = "Arial Narrow"
     End With
 End With
  'Next NumberOfSeries
 End Sub

Мой оригинальный макрос был написан с помощью Google/Forums и методом проб и ошибок.

2 ответа2

1

Нет необходимости в VBA (если вы не любите VBA). Просто создайте вспомогательный ряд, который оценивает, есть ли другое значение (я использую формулу смещения). Если в вашем ряду данных нет "следующего" значения, верните текущее / последнее значение. В противном случае верните # N / A. Затем добавьте эту серию помощников в свой график и добавьте метку / формат по вкусу. Диаграмма игнорирует все N / A и отображает только конечную точку данных. Это также может быть использовано для поиска других ключевых значений (например, first, high, low и т.д ...).

0

Перебрать каждую серию на графике -

Option Explicit

Public Sub LoopThroughSeries()
    Dim myChart As ChartObject
    Dim mySeries As Series

    With myChart
        For Each mySeries In myChart.Chart.SeriesCollection
            'do stuff
        Next
    End With

End Sub

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