将图表的轴更改为百分比

时间:2017-07-26 14:49:26

标签: excel vba excel-vba

我有一张工作表,我正在生成图表。我正在生成Clustered Column Chart。我想将图表的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

2 个答案:

答案 0 :(得分:2)

试试这个cht.Axes(xlSecondary).TickLabels.NumberFormat = "0.0%"代替cht.SeriesCollection(1).DataLabels.NumberFormat = "0.0%"

此外,如果需要,您可以删除cht语句中的with。这是多余的,但不应该导致代码问题。

答案 1 :(得分: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%"

它现在有效;)