从数据透视表创build图表

我有一张表,我有两个数据透视表。 我正在试图为数据透视表生成两个不同的图表。

我尝试了下面的代码,但是我得到了一个

自动化错误

在线

.SetSourceData ptr1

任何人都可以帮助,我可以如何避免这一点,

这是我的两个图表的代码。 另外,有可能我可以有一个单一的代码,而不是两个单独的代码?

Sub chartG702() Dim cht As Chart If ActiveSheet.PivotTables.Count = 0 Then Exit Sub Set ptable1 = ActiveSheet.PivotTables(1) Set ptr1 = ptable1.TableRange2 Set sh = ActiveSheet.ChartObjects.Add(Left:=390, _ Width:=390, _ Top:=350, _ Height:=250) sh.Select Set cht = ActiveChart With cht .SetSourceData ptr1 .ChartType = xlColumnStacked End With cht.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) cht.SeriesCollection(1).HasDataLabels = True '<~~ Red cht.HasTitle = True cht.ChartTitle.Text = "M1" End Sub 

下面的代码我没有任何问题。 这仅供参考。

 Sub chartG70() Dim cht As Chart If ActiveSheet.PivotTables.Count = 0 Then Exit Sub Set ptable = ActiveSheet.PivotTables(2) Set ptr = ptable.TableRange1 Set sh = ActiveSheet.ChartObjects.Add(Left:=440, _ Width:=390, _ Top:=50, _ Height:=250) sh.Select Set cht = ActiveChart With cht .SetSourceData ptr .ChartType = xlColumnStacked End With cht.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(0, 255, 0) cht.SeriesCollection(1).HasDataLabels = True '<~~ Red cht.HasTitle = True cht.ChartTitle.Text = "M" End Sub