Вставка символа перевода строки в строку, построенную в формуле Excel в метке данных

Вставка символа перевода строки в строку, построенную в формуле Excel в метке данных

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

Это будет работать в формуле ячейки:

=A1 & CHAR(10) & B1

и это будет работать в VBA

=A1 & Chr(10) & B1

как в этом посте:http://www.ozgrid.com/forum/showthread.php?t=40644но ни один из этих подходов не работает внутри метки данных. Есть идеи?

решение1

В VBA вы можете использовать это:

Dim str as String

str = Range("A").Value & vbCrlf & Range("B").Value

vbCrlf даст вам перенос строки...

решение2

Это сработало для меня в VBA:

Sheet1.ChartObjects(1).Chart.SeriesCollection(1).Name = "a" & vbCr & "b"

И как уже было сказано, это работает по формуле:

=DATASERIES(Sheet1!$E$1,Sheet1!$A$2:$A$4,Sheet1!$B$2:$B$4,1)

E1 = "a" & CHAR(10) & "b"

В E1 должен быть установлен перенос слов.

DATASERIES — это то, что вы видите в разделе редактирования формулы, когда выбрали свою серию.

решение3

Вот как у меня это заработало.

Шаг 1: создайте новый столбец с включенным переносом слов с формулой =A1 & CHAR(10) & B1в ячейке C1и перетащите вниз по мере необходимости.

Шаг 2: Запустите следующий код VBA, чтобы настроить каждую метку данных так, чтобы она указывала на правильную ячейку.

Sub SetDataLabels()

    Dim ChartName As String
    ChartName = "My Chart's Name"

    With ActiveSheet.ChartObjects(ChartName).Chart

        Dim Series As Integer
        Series = 4

        With .SeriesCollection(Series)

            Dim currentPoint As Integer

            For currentPoint = 1 To .Points.Count

                .Points(currentPoint).DataLabel.Text = Range("C" & currentPoint).Text

            Next currentPoint
        End With

    End With

End Sub

Связанный контент