使用VBA定制图表

我有一张带有数据透视表的表,我正在创build一个来自表的列堆积图。

我想改变图表中的图例条目的颜色,并希望每次创build图表时都有一个图表标题。

我试了下面的代码,我越来越

对象variables或块variables未设置

我得到了错误

cht.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(155, 213, 91) 

任何人都可以告诉我如何为我的需求创build图表。 我已经添加了当前图表的图片和所需的图表。

 Sub chart11() Dim sh As Shape Dim cht As Chart If ActiveSheet.PivotTables.Count = 0 Then Exit Sub Set ptable = ActiveSheet.PivotTables(1) Set ptr = ptable.TableRange1 Set sh = ActiveSheet.Shapes.AddChart sh.Select With ActiveChart .SetSourceData ptr .ChartType = xlColumnStacked End With cht.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(155, 213, 91) cht.Axes(xlCategory).MinimumScale = 5 cht.Axes(xlCategory).MaximumScale = 40 cht.HasTitle = True cht.ChartTitle.Text = "Default Chart" End Sub 

这是我的代码现在生成的图表,如果我注释错误行:

这是我的代码现在生成的图表,如果我评论错误行。

我想有一个这种types的图表,改变颜色的图例和图表标题:

我想有一个这种类型的图表,改变颜色的图例和图表标题

您不能使用cht.Axes(xlCategory).MinimumScale = 5和MaximumScale。 由于枢轴图不协助散点图。 只有在散点图中,您可以设置xlCategory Scale。

 Sub chart11() Dim sh As Shape Dim cht As Chart If ActiveSheet.PivotTables.Count = 0 Then Exit Sub Set ptable = ActiveSheet.PivotTables(1) Set ptr = ptable.TableRange1 Set sh = ActiveSheet.Shapes.AddChart sh.Select Set cht = ActiveChart With cht .SetSourceData ptr .ChartType = xlColumnStacked End With cht.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) '<~~ Red cht.SeriesCollection(2).Format.Fill.ForeColor.RGB = RGB(0, 255, 0) '<~~ green 'cht.Axes(xlCategory).MinimumScale = 5 'cht.Axes(xlCategory).MaximumScale = 40 cht.HasTitle = True cht.ChartTitle.Text = "Default Chart" End Sub