2016-12-16 2 views
0

У меня есть макрос, который добавляет метки данных в пузырьковую диаграмму. Этот код отлично работает для обеспечения значения оси Y, и теперь я хотел бы изменить это, показывая имя серии.VBA добавляет метки данных с именем серии в пузырьковую диаграмму

Sub AddDataLabels() 

Dim bubbleChart As ChartObject 
Dim mySrs As Series 
Dim myPts As Points 

With ActiveSheet 
    For Each bubbleChart In .ChartObjects 
     For Each mySrs In bubbleChart.Chart.SeriesCollection 
      Set myPts = mySrs.Points 
      myPts(myPts.Count).ApplyDataLabels Type:=xlShowValue 
     Next 
    Next 
End With 

End Sub 

Стараюсь изменения

myPts(myPts.Count).ApplyDataLabels Type:=xlShowValue 

В:

myPts(myPts.Count).ApplyDataLabels Type:=xlShowSeriesName 

Но это дает мне 'Недопустимый вызов процедуры или аргумент'.

Любые советы о том, как я могу изменить код, чтобы отображать SeriesName вместо значения оси Y?

Screenshot

ответ

0

Добавьте With заявление в моем коде ниже внутри кода, а также настроить параметры в соответствии с вашими потребностями.

В приведенном ниже графике Daralabels покажет SeriesName, но не Категория или Ценности.

Sub AddDataLabels() 

Dim bubbleChart As ChartObject 
Dim mySrs As Series 
Dim myPts As Points 

With ActiveSheet 
    For Each bubbleChart In .ChartObjects 
     For Each mySrs In bubbleChart.Chart.SeriesCollection 
      Set myPts = mySrs.Points 

      myPts(myPts.Count).ApplyDataLabels 

      With myPts(myPts.Count).DataLabel 
       .ShowSeriesName = True 
       .ShowCategoryName = False 
       .ShowValue = False 
       ' optional parameters 
       .Orientation = 0 
       .Font.Size = 10 
       .Font.Bold = True 
      End With 

     Next 
    Next 
End With 

End Sub 
+0

Удивительно, это работает как шарм! Спасибо! –

+0

@RobinEdsmyr your'e добро пожаловать, пожалуйста, отметьте как «ответ» (пометив немного ** V ** рядом с моим сообщением) –

+0

Сделано! Еще раз спасибо. –

0

ли эта работа для вас?

bubbleChart.ApplyDataLabels xlDataLabelsShowLabel

+0

К сожалению, нет. Удаление myPts (myPts.Count) .ApplyDataLabels Type: = xlShowValue 'и добавление' bubbleChart.ApplyDataLabels xlDataLabelsShowLabel 'дает ошибку. Однако, меняя 'myPts (myPts.Count) .ApplyDataLabels Type: = xlShowValue' to 'myPts (myPts.Count) .ApplyDataLabels Type: = xlDataLabelsShowLabel', который дает мне значение оси x вместо оси Y ранее. Но не название серии. –

+0

Странно. Это работало для меня с моей тестовой пузырьковой диаграммой. может заглянуть в нее позже. Еще один момент: я перехватил 'myPts (myPts.Count).' Приведет к ошибке, так как индекс 'myPts' начинается с 0, и вы пытаетесь получить доступ к одному элементу с индексом' myPts.Count' (считая, очевидно, начинается с 1) –

Смежные вопросы