部分字体样式修改

时间:2016-03-07 23:12:44

标签: excel vba excel-vba

我正在使用饼图和Excel 2003中的图例。

图例条目由以下字符串组成:

75% Ice Cream

20% Brownies

5% Gummy Bears

我试图将曝光百分比设为粗体,但保留系列名称的其余部分(冰淇淋,布朗尼或小熊软糖)。

是否可以这样做?

到目前为止,我一直在处理此代码的变体。另外,我尝试在SeriesCollection对象上使用Split()函数,甚至记录一个宏来查看Excel将在VBA中生成什么。到目前为止,我只能将文本显示为全部粗体或所有常规字体,而不是两者的混合。

For x = 1 To 3
  myChartObject.Chart.Legend.LegendEntries(x).Font.Bold = True
Next x

建议会有所帮助。

1 个答案:

答案 0 :(得分:0)

我没有注意到你在图表中工作的事实,希望以下内容可以提供帮助。如果你可以获得字符,那么你可以加粗字符串的某些部分。 (假设您的A列的单元格为20% Brownies,下一个单元格为75% Ice Cream,等等。

Sub boldPercent()
Dim i&, lastRow&, percentLength&, percentAmt$
Dim k&

lastRow = Cells(Rows.Count, 1).End(xlUp).Row ' Assuming your data is in column A

For i = 1 To lastRow
    percentAmt = Left(Cells(i, 1), WorksheetFunction.Search("%", Cells(i, 1)))
    percentLength = Len(percentAmt)
    With Cells(i, 1).Characters(Start:=1, Length:=percentLength)
        .Font.Bold = True
    End With
Next i

End Sub

那么也许您可以使用它并调整它以使用图表区域?让VBA遍历您的图表标题,也许您可​​以使用上述相同的方法。

编辑:我正在制作一个模拟示例图表来尝试解决这个问题 - 但是如何将每个类别的百分比纳入传奇?我已经设置了一个超级简单的图表,但不知道你从哪里开始(screenshot

(我希望你的传奇说75% Ice Cream20% Brownies等等吗?)

Edit2:好的,我已经开始使用Chart对象了,希望能抓住每个Legend Entry,并且会像上面那样在大胆的字符中加入...但是,我无法得到{ {1}}永远不是一个非空字符串:

legendString

(感谢this thread