Colocar um feed de linha em uma string criada em uma fórmula do Excel em um rótulo de dados

Colocar um feed de linha em uma string criada em uma fórmula do Excel em um rótulo de dados

Preciso construir um rótulo de dados em um gráfico do Excel usando uma fórmula que constrói a string a partir de duas células com uma quebra de linha entre elas.

Isso funcionaria em uma fórmula de célula:

=A1 & CHAR(10) & B1

e isso funcionaria em VBA

=A1 & Chr(10) & B1

como nesta postagem:http://www.ozgrid.com/forum/showthread.php?t=40644mas nenhuma dessas abordagens funciona dentro de um rótulo de dados. Alguma ideia?

Responder1

No VBA você pode usar isto:

Dim str as String

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

vbCrlf lhe dará uma quebra de linha ...

Responder2

Isso funcionou para mim no VBA:

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

E como dito, isso funciona com uma fórmula:

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

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

E1 deve ter quebra de linha definida.

DATASERIES é o que você vê na seção de edição de fórmulas, quando você seleciona sua série.

Responder3

Então foi assim que fiz funcionar.

Etapa 1: crie uma nova coluna com quebra de linha habilitada com a fórmula =A1 & CHAR(10) & B1na célula C1e arraste para baixo conforme apropriado

Etapa 2: execute o seguinte código VBA para definir cada rótulo de dados para apontar para a célula correta

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

informação relacionada