Установить метки данных как значения из диапазона в VBA - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь установить метки данных равными пользовательским значениям. Однако они не появляются. Я четко определил диапазон, в котором они могут появляться, и не знаю, почему они этого не делают.

Dim names As Range
Set names = Range(Range("A2"), Range("A2").End(xlDown))

Set mypts = mysrs.Points

mypts(mypts.count).ApplyDataLabels

With mypts(mypts.count).DataLabel
    .ShowSeriesName = False
    .ShowCategoryName = False
    .ShowValue = False
    ' optional parameters
    .Position = xlLabelPositionAbove
    .Font.name = "Helvetica"
    .Font.Size = 10
    .Font.Bold = False
End With

For Each pt In mypts
    k = k + 1
    pt.DataLabel.Text = names.Cells(k, 1).Text
Next

Могу ли я передать имена в виде массива?

1 Ответ

0 голосов
/ 28 августа 2018

Я обнаружил 2 проблемы с вашим кодом. Вы наносите метку форматирования только до последней точки. Во-вторых, вы не написали .HasDataLabel = True . Попробуйте следующий код (заметьте, я предполагаю, что вы уже определили mysrs правильно)

Dim names As Range
Set names = Range(Range("A2"), Range("A2").End(xlDown)

Set mypts = mysrs.Points

'mypts(mypts.Count).ApplyDataLabels

For k = 1 To mypts.Count

    mypts(k).HasDataLabel = True
    mypts(k).DataLabel.Text = names.Cells(k, 1).Text

    With mypts(k).DataLabel
    .ShowSeriesName = False
    .ShowCategoryName = False
    .ShowValue = False
    ' optional parameters
    .Position = xlLabelPositionAbove
    .Font.Name = "Helvetica"
    .Font.Size = 10
    .Font.Bold = False

    End With

Next k

Надеюсь, это поможет

...