我正在使用饼图和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
建议会有所帮助。
答案 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 Cream
,20% Brownies
等等吗?)
Edit2:好的,我已经开始使用Chart
对象了,希望能抓住每个Legend Entry,并且会像上面那样在大胆的字符中加入...但是,我无法得到{ {1}}永远不是一个非空字符串:
legendString
(感谢this thread)