Dim chSer As Series, j As Long, i As Long, SerPoints As Points
Dim shCh As Chart
Set shCh = ActiveChart
With shCh
For Each chSer In .SeriesCollection
Set SerPoints = chSer.Points
j = SerPoints.count
For i = 1 To j
SerPoints(i).ApplyDataLabels Type:=xlDataLabelsShowBubbleSizes
SerPoints(i).DataLabel.Text = "Whatever" & i
Next
Next
End With
Правильное объявление chChar
и SerPoints
может быть очень полезным. Вы можете использовать IntelliSense VBA, чтобы просмотреть все DataLabel
свойства, а не только это ...
Например, вы можете добавить некоторые определения для так называемых меток в столбце рядом с серией диаграммы и назвать его «DataLabels». , затем используйте следующий код для автоматического применения содержащихся строк:
Dim rng as Range
Set rng = sh.Range(sh.Parent.Names("DataLabels").RefersToRange.Address)
'and add the data in this way:
SerPoints(i).DataLabel.Formula = "=" & sh.Name & "!" & sh.Cells(rng.Row + i - 1, rng.Column).Address