Помещение перевода строки в строку, встроенную в формулу Excel, в метку данных
Мне нужно построить метку данных в диаграмме Excel, используя формулу, строящую строку из двух ячеек с разрывом строки между ними.
Это будет работать в формуле ячейки:
=A1 & CHAR(10) & B1
и это будет работать в VBA
=A1 & Chr(10) & B1
как в этом посте: http://www.ozgrid.com/forum/showthread.php?t=40644 но ни один из этих подходов не работает внутри метки данных. Есть идеи?
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
В VBA вы можете использовать это:
Dim str as String
str = Range("A").Value & vbCrlf & Range("B").Value
vbCrlf даст вам разрыв строки...
Это работало для меня в 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 - это то, что вы видите в разделе редактирования формул, когда выбрали серию.