为每个数据透视表创建图表

时间:2019-02-10 19:56:33

标签: excel vba charts pivot

在我的活动表中,我有两个数据透视表(PivotTable1和PivotTable2),有时它们可​​能更多。 我正在尝试为活动工作表中的每个PT添加图表。到目前为止,我想出了这段代码,但是如果选择了其中一个PT,它将为我提供4个图表,3个空白图表和一个正确的图表。

Sub CreateChart1()

Dim pivot As PivotTable, sh As Worksheet, nrp As Long

Set sh = ThisWorkbook.Sheets("Sheet1")

For nrp = 1 To sh.PivotTables.Count

 Set pivot = ActiveSheet.PivotTables(nrp)
    For Each pivot In sh.PivotTables
        Charts.Add
        ActiveChart.Location Where:=xlLocationAsObject, Name:=pivot.Parent.Name
    Next pivot
Next nrp

End Sub

有人可以向我解释我在做什么错吗?

感谢您的帮助。

谢谢

尼克。

1 个答案:

答案 0 :(得分:3)

即使只有两个数据透视表,您也会得到四个图表,因为您有两个循环,只需要一个循环。

内部循环For Each pivot In sh.PivotTables循环遍历每个数据透视表,外部循环For nrp = 1 To sh.PivotTables.Count也是如此。因此,每个数据透视表将获得2张图表。

建议您不要使用ChartObjects.Add,它会创建一个嵌入式图表并在其中控制放置和大小。

然后,您还需要Charts.Add

一个例子可能像这样:

SetSourceData