2017-07-26 66 views
0

我有一張表格,用於生成圖表。我正在生成聚集列圖表。我想將圖表的y軸更改爲百分比。 我試過下面的代碼,它給了我一個錯誤將圖表的軸線更改爲百分比

對象不支持此屬性或方法。

任何人都可以告訴我如何改變軸。

任何鉛將是有益的

Sub chartResult() 
Dim rng As Range 
Dim cht As Object 
Set rng = ActiveSheet.Range("B2:H53") 
'ThisWorkbook.Sheets("Result").ChartObjects.Delete 
Set sh = ActiveSheet.Shapes.AddChart 
sh.Select 
Set cht = ActiveChart 
With cht 
.SetSourceData Source:=rng 
.ChartType = xlColumnClustered 
cht.SeriesCollection(1).DataLabels = True 
cht.SeriesCollection(1).DataLabels.NumberFormat = "0.0%" 
End With 
cht.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(72, 118, 255) '<~~ Red 
cht.SeriesCollection(2).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) 
cht.SeriesCollection(3).Format.Fill.ForeColor.RGB = RGB(0, 255, 0) 
cht.HasTitle = True 
cht.ChartTitle.Text = "Result 2017" 
End Sub 
+0

[圖表軸標籤格式VBA設置](HTTPS的可能的複製:// stackoverflow.com/questions/30403073/chart-axis-label-format-vba-settings) – Masoud

回答

1

試試這個cht.Axes(xlSecondary).TickLabels.NumberFormat = "0.0%"代替cht.SeriesCollection(1).DataLabels.NumberFormat = "0.0%"

此外,您還可以刪除chtwith語句裏面,如果你想要的。這是多餘的,但不應該對代碼造成問題。

1

我得到了錯誤在另一條線路,從而修正它,如下所示:

.ChartType = xlColumnClustered 
cht.SeriesCollection(1).ApplyDataLabels Type:=xlDataLabelsShowLabel, LegendKey:=False, AutoText:=True, HasLeaderLines:=False, ShowSeriesName:=False, ShowCategoryName:=False, ShowValue:=True, ShowPercentage:=True 
cht.SeriesCollection(1).DataLabels.NumberFormat = "0.0%" 

和它的作品現在;)