我有一个图表,其中已使用单元格引用创建了图表标题。 我的代码如下:
ActiveSheet.ChartObjects("chart001").Activate
ActiveChart.ChartTitle.Select
Selection.Caption = "=New_pivot!$B$1:$B$3"
在这里,我有一个图表,其中包含来自数据透视表范围B1:B3的动态标题。 我想使用数据透视表引用单元格B4中的引用在图表中添加一个标题,并且还想在图表中用红色(仅B4值)涂同样的颜色。 我不确定如何解决此问题?
答案 0 :(得分:0)
首先将标题设置为完整范围(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个标题。作为替代方案,可以添加一个带有第二个“标题”的形状/文本框,该第二个“标题”与实际图表标题相比可以在其他地方移动/定位。