目前我有我的数据透视表,看起来像这样
目前,我创建的其中一个图表会在xlPie图表中添加一个系列,但是它会选择Range("C6:C12")
中的数据,我希望它选择最后一列,Range("F6":"F12")
为我们想要的是总价值,而不仅仅是一个月的价值。
这是目前为参考而创建的饼图:
要创建此图表,我在此图表所在的工作表中使用以下代码:
Dim shpPie As Shape
Set shpPie = ActiveSheet.Shapes.AddChart(xlPie)
shpPie.Chart.SetSourceData Source:=ActiveWorkbook.Sheets("Pivot Table").PivotTables(1).TableRange1, _
PlotBy:=xlColumns
With Range("A1:F32")
shpPie.Left = .Left
shpPie.Top = .Top
shpPie.Width = .Width
shpPie.Height = .Height
End With
With shpPie.Chart.PivotLayout.PivotTable
.PivotFields("Marketspace").Orientation = xlRowField 'Row Field is the Axis Fields
.PivotFields("Page Name").Orientation = xlRowField
.PivotFields("Year").Orientation = xlColumnField
.PivotFields("Month").Orientation = xlColumnField 'Column Field is the Legend Fields
End With
我认为问题出在这一行:
shpPie.Chart.SetSourceData Source:=ActiveWorkbook.Sheets("Pivot Table").PivotTables(1).TableRange1, _
PlotBy:=xlColumns
在excel中,该行为我提供了以下源数据选择:
=SERIES('Pivot Table'!$C$3:$C$5,'Pivot Table'!$A$6:$B$14,'Pivot Table'!$C$6:$C$14,1)
有没有人知道我能做些什么来让它选择第二列,或者其他技术来做到这一点?我希望它选择2015年总数不是1月数据。
我尝试更改从以下位置生成的源代码行:
=SERIES('Pivot Table'!$C$3:$C$5,'Pivot Table'!$A$6:$B$14,'Pivot Table'!$C$6:$C$14,1)
为:
=SERIES('Pivot Table'!$C$3:$C$5,'Pivot Table'!$A$6:$B$14,'Pivot Table'!$F$6:$F$14,1)
只是为了看看会发生什么,但它不允许我应用这种改变。
我是VB的新手,所以我可能会误解这些数据透视表/图表是如何工作的
答案 0 :(得分:0)
无需提取数据来创建新图表,只需复制包含pivottable的工作表(如Rory所建议),从复制的pivottable中的值中排除“Month”字段。
从代码中排除以下行
.PivotFields("Month").Orientation = xlColumnField 'Column Field is the Legend Fields
然后运行复制的工作表的程序