Excel 为每个数据透视表创建一个图表
在我的活动工作表中,我有两个数据透视表(数据透视表1和数据透视表2),但有时它们可能更复杂。 我正在尝试为活动工作表中的每个PT添加图表。到目前为止,我提出了这个代码,但它给了我4个图表,3个空白图表,如果选择了一个PT,则是一个正确的图表Excel 为每个数据透视表创建一个图表,excel,vba,charts,pivot,Excel,Vba,Charts,Pivot,在我的活动工作表中,我有两个数据透视表(数据透视表1和数据透视表2),但有时它们可能更复杂。 我正在尝试为活动工作表中的每个PT添加图表。到目前为止,我提出了这个代码,但它给了我4个图表,3个空白图表,如果选择了一个PT,则是一个正确的图表 Sub CreateChart1() Dim pivot As PivotTable, sh As Worksheet, nrp As Long Set sh = ThisWorkbook.Sheets("Sheet1") For nrp = 1 To
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
谁能解释一下我做错了什么
感谢您的帮助
谢谢
尼克。即使你只有两个数据透视表,你也会得到四个图表,因为你有两个循环,只需要一个 sh.PivotTables中每个pivot的内部循环
,
通过每个pivot表循环,nrp=1到sh.PivotTables.Count的外部循环。因此,每个数据透视表将有两个图表
不要使用图表。添加我建议使用,它可以创建一个嵌入式图表,并且可以控制位置和大小
然后还需要设置资源数据
示例可能如下所示:
Sub AddPivotChart()
Dim pivotTbl As PivotTable, ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet2")
For Each pivotTbl In ws.PivotTables
Dim chtObj As ChartObject
Set chtObj = ws.ChartObjects.Add(50, 50, 200, 200) ' adjust as needed
chtObj.Name = pivotTbl.Name
chtObj.Chart.SetSourceData pivotTbl.TableRange1
Next pivotTbl
End Sub
即使只有两个数据透视表,您也会得到四个图表,因为您有两个循环,并且只需要一个
sh.PivotTables中每个pivot的内部循环,
通过每个pivot表循环,nrp=1到sh.PivotTables.Count的外部循环。因此,每个数据透视表将有两个图表
不要使用图表。添加我建议使用,它可以创建一个嵌入式图表,并且可以控制位置和大小
然后还需要设置资源数据
示例可能如下所示:
Sub AddPivotChart()
Dim pivotTbl As PivotTable, ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet2")
For Each pivotTbl In ws.PivotTables
Dim chtObj As ChartObject
Set chtObj = ws.ChartObjects.Add(50, 50, 200, 200) ' adjust as needed
chtObj.Name = pivotTbl.Name
chtObj.Chart.SetSourceData pivotTbl.TableRange1
Next pivotTbl
End Sub
嗨,大本钟,非常感谢,老兄