在我的活动表中,我有两个数据透视表(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
有人可以向我解释我在做什么错吗?
感谢您的帮助。
谢谢
尼克。
答案 0 :(得分:3)
即使只有两个数据透视表,您也会得到四个图表,因为您有两个循环,只需要一个循环。
内部循环For Each pivot In sh.PivotTables
循环遍历每个数据透视表,外部循环For nrp = 1 To sh.PivotTables.Count
也是如此。因此,每个数据透视表将获得2张图表。
建议您不要使用ChartObjects.Add
,它会创建一个嵌入式图表并在其中控制放置和大小。
然后,您还需要Charts.Add
。
一个例子可能像这样:
SetSourceData