Создание двух заголовков для одного и того же графика с использованием VBA
У меня есть диаграмма, где я создал заголовок диаграммы, используя ссылку на ячейку. Мой код приведен ниже:
ActiveSheet.ChartObjects("chart001").Activate
ActiveChart.ChartTitle.Select
Selection.Caption = "=New_pivot!$B$1:$B$3"
Здесь у меня есть диаграмма с динамическим заголовком из диапазона сводной таблицы B1:B3. Я хочу добавить еще один заголовок в диаграмму, используя ссылку из ячейки ссылки сводной таблицы B4, а также хочу закрасить ее красным цветом (только значение B4). Я не уверен, как решить эту проблему?
1 ответ
Сначала установите заголовок на полный диапазон (B1:B4). Затем раскрасьте только те символы, которые нуждаются в раскраске, исходя из длины строк.
Код (выполняется против "ActiveSheet"):
Sub Test()
Dim noColorLength As Integer
Dim colorLength As Integer
Dim tr As TextFrame2
Dim r As Range
'Get the total length of the "not colored part"
For Each r In Range("B2:B4")
noColorLength = noColorLength + Len(r.Value) + 1
Next r
'Get the length of the red part:
colorLength = Len(Range("B5").Value)
With ActiveSheet.ChartObjects("chart001").Chart.ChartTitle
'Set the caption:
.Caption = "=Sheet1!R1C2:R4C2"
'Color the caption, starting char is after the 1st three cells, red part has length of the 4th cell
.Format.TextFrame2.TextRange.Characters(noColorLength + 1, colorLength).Font.Fill.ForeColor.RGB = RGB(255, 0, 0)
End With
End Sub
Примечание: это цветная часть названия. Любой график имеет только 1 заголовок. В качестве альтернативы можно добавить форму / текстовое поле со вторым "заголовком", который можно перемещать / размещать в другом месте по сравнению с фактическим заголовком диаграммы.