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

0

Eu preciso construir um rótulo de dados em um gráfico excel usando uma fórmula para construir a string 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 no VBA

=A1 & Chr(10) & B1

como neste post: link mas nenhuma dessas abordagens funciona dentro de um rótulo de dados. Alguma idéia?

    
por Dan 09.11.2012 / 16:55

3 respostas

0

Então é assim que eu funcionei.

Etapa 1: crie uma nova coluna com o wordwrap ativado com a fórmula =A1 & CHAR(10) & B1 na célula C1 e arraste 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
    
por 12.11.2012 / 14:21
1

No VBA você pode usar isto:

Dim str as String

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

vbCrlf lhe dará quebra de linha ...

    
por 09.11.2012 / 16:58
0

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 precisa ter um conjunto de quebra de linha.

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

    
por 09.11.2012 / 17:29