Excel 圖表 - 對系列進行計數,然後在最後一點新增資料標籤

Excel 圖表 - 對系列進行計數,然後在最後一點新增資料標籤

我已經成功製作了一個宏,可以找到圖表中第一個系列的最後一個點,並添加和格式化資料標籤。我現在想讓它計算圖表中的系列(數量可能會改變),並迭代每個系列,就像對系列 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/論壇的幫助下以及反覆試驗的情況下編寫的。

答案1

不需要 VBA(除非您喜歡 VBA)。只需建立一個輔助系列來評估是否存在另一個值(我使用偏移公式)。如果資料系列中沒有「下一個」值,則傳回目前/最後一個值。否則,返回#N/A。然後將此輔助系列新增到您的圖表中,並根據口味添加標籤/格式。此圖表忽略所有不適用的情況,僅繪製最終數據點。這也可以用來尋找其他關鍵值(例如第一個、最高、最低等...)。

在此輸入影像描述

答案2

循環遍歷圖表中的每個系列 -

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

相關內容