2014-10-08 77 views
-1

我有一张表格,其中包含多个需要放入图表的不断变化的数据透视表。我需要一个宏来查找每个数据透视表并为它们创建图表。这是我到目前为止。它所做的只是基于第一个数据透视表创建图表。一些,因为它从不同的表变为表1到2变为3等枢轴表格图表宏

Sub CreateChart(i, v, SheetName) 
Dim objPivot As PivotTable, objPivotRange As Range, objChart As chart 

If ActiveSheet.PivotTables.Count = 0 Then Exit Sub 
Set objPivot = ActiveSheet.PivotTables(i) 

Set objChart = Charts.Add 

Set objPivotRange = objPivot.TableRange1 

With objChart 
.SetSourceData objPivotRange 
.ChartType = xl3DColumn 
.Legend.Delete 
.ApplyDataLabels 
.Location xlLocationAsNewSheet, SheetName & " Chart" 
End With 

ActiveWorkbook.ShowPivotTableFieldList = False 
ActiveWorkbook.ShowPivotChartActiveFields = False 

End Sub 

所以F'ing计算器不会让我的任何意见作出回应的引用留下来回答这个问题,这是牛市$击中。但无论如何,这些表都被唯一地命名为pivottable1 pivottable2等。因此,无论是索引还是使用pivottablename都没有区别。

+0

你传递了​​唯一的索引值(i)吗? – 2014-10-12 21:39:38

回答

0

命名表并传递表名称而不是索引号。

Set chartTable = ActiveSheet.PivotTables(ptTableN)