使用 VBA 自定义图表
Customzing the Charts using VBA
我有一个带 Pivot table 的 sheet,我正在从 table 创建一个柱状堆积图。
我想更改图表中图例条目的颜色,并希望每次创建图表时都有一个图表标题。
我尝试了下面的代码,我得到了
Object variable or with block variable not set
我在行
中收到错误
cht.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(155, 213, 91)
任何人都可以告诉我如何根据我的要求创建图表。我添加了当前图表和所需图表的图像。
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
这是我现在代码生成的图表,如果我注释掉错误行:
我想要这种类型的图表,颜色图例和图表标题都有变化:
您不能使用 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
我有一个带 Pivot table 的 sheet,我正在从 table 创建一个柱状堆积图。
我想更改图表中图例条目的颜色,并希望每次创建图表时都有一个图表标题。
我尝试了下面的代码,我得到了
Object variable or with block variable not set
我在行
中收到错误cht.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(155, 213, 91)
任何人都可以告诉我如何根据我的要求创建图表。我添加了当前图表和所需图表的图像。
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
这是我现在代码生成的图表,如果我注释掉错误行:
我想要这种类型的图表,颜色图例和图表标题都有变化:
您不能使用 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