Ich muss eine Datenbeschriftung in einem Excel-Diagramm mithilfe einer Formel erstellen, die die Zeichenfolge aus zwei Zellen mit einem Zeilenumbruch dazwischen aufbaut.
Dies würde in einer Zellformel funktionieren:
=A1 & CHAR(10) & B1
und dies würde in VBA funktionieren
=A1 & Chr(10) & B1
wie in diesem Beitrag:http://www.ozgrid.com/forum/showthread.php?t=40644aber keiner dieser Ansätze funktioniert innerhalb einer Datenbeschriftung. Irgendwelche Ideen?
Antwort1
In VBA können Sie Folgendes verwenden:
Dim str as String
str = Range("A").Value & vbCrlf & Range("B").Value
vbCrlf sorgt für einen Zeilenumbruch ...
Antwort2
Bei mir hat das in VBA funktioniert:
Sheet1.ChartObjects(1).Chart.SeriesCollection(1).Name = "a" & vbCr & "b"
Und wie gesagt, das funktioniert mit einer Formel:
=DATASERIES(Sheet1!$E$1,Sheet1!$A$2:$A$4,Sheet1!$B$2:$B$4,1)
E1 = "a" & CHAR(10) & "b"
E1 muss einen Zeilenumbruch haben.
DATASERIES ist das, was Sie im Abschnitt zur Formelbearbeitung sehen, wenn Sie Ihre Serie ausgewählt haben.
Antwort3
So habe ich es zum Laufen gebracht.
Schritt 1: Erstellen Sie eine neue Spalte mit aktiviertem Zeilenumbruch mit der Formel =A1 & CHAR(10) & B1
in der Zelle C1
und ziehen Sie sie entsprechend nach unten
Schritt 2: Führen Sie den folgenden VBA-Code aus, um jedes Datenlabel so einzustellen, dass es auf die richtige Zelle verweist
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