2016-03-07 44 views
0

我正與一個餅圖和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

我沒有注意到你在圖表中工作的事實,希望以下可以幫助。如果你能得到這些字符,那麼你可以加粗字符串的某些部分。 (假設你的列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循環顯示圖表標題,也許可以使用上面的相同方法。

編輯:我正在製作一個模擬示例圖表來嘗試解決這個問題 - 但是如何獲得每個類別進入Legend的百分比?我已成立了一個超級簡單的圖表,但不知道你從這裏去(screenshot

(我期待你的傳奇說75% Ice Cream20% Brownies,等吧?)

EDIT2:好的,我已經開始使用Chart這個對象,希望能夠抓住每個圖例條目,並且會像上面所做的那樣在字符的粗體中顯示羽毛......但是,我無法獲得legendString曾經是非空字符串:

Sub Bold_Legend_Text() 
Dim stringToFind$ 
Dim cObj As ChartObject 
Dim legEnt As LegendEntry 
Dim cht As Chart 
Dim i& 

Dim percentLength& 
Dim legendString$ 

stringToFind = "%" 
For Each cObj In ActiveSheet.ChartObjects 
    Set cht = cObj.Chart 
    With cht 
     If .HasLegend Then 
      Debug.Print .Legend.LegendEntries.Count 
      For Each legEnt In .Legend.LegendEntries 
       ' This always returns an empty string, not sure why! 
       legendString = legEnt.Format.TextFrame2.TextRange.Characters.Text 
       Debug.Print legendString 
       ' Then we'd find where "%" shows up in the Legend title, and try to bold 
       ' just certain characters 


      Next legEnt 
     End If 
Next cObj 
End Sub 

(感謝this thread

+1

謝謝,@BruceWayne。所以真的不能使用'SeriesCollection'對象或'LegendEntries'對象來完成。 'legEnt'變量永遠不會返回一個字符串。爲此,我實際上必須創建類似於圖例鍵的形狀,並在其旁邊添加包含信息的文本框。 (我用兩個右對齊百分比曝光列值。)謝謝你嘗試。 –

+0

@DianaTortolini - 很高興你找到了解決方案,聰明的主意。 – BruceWayne