2014-10-10 43 views
0

我试图记录创建透视图的宏。在删除旧图表后运行recorde33d宏时,会产生错误。 “无效的过程调用或参数” 错误凸显了第一线可以透视图由宏来完成或者只是录制的宏时不工作宏记录 - 透视图不工作

Sub Macro5() 

    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ 
     "Warranty!R1C1:R1048576C52", Version:=xlPivotTableVersion15). _ 
     CreatePivotTable TableDestination:="Customer Pareto!R12C6", TableName:= _ 
     "PivotTable4", DefaultVersion:=xlPivotTableVersion15 
    Sheets("Customer Pareto").Select 

    ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select 
    ActiveChart.SetSourceData Source:=Range("'Customer Pareto'!$F$12:$H$29") 
    ActiveChart.PivotLayout.PivotTable.AddDataField ActiveChart.PivotLayout. _ 
     PivotTable.PivotFields("VEH_IDENT_NBR"), "Count of VEH_IDENT_NBR", xlCount 
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Step") 
     .Orientation = xlColumnField 
     .Position = 1 
    End With 
    With ActiveChart.PivotLayout.PivotTable.PivotFields("SA Status") 
     .Orientation = xlColumnField 
     .Position = 2 
    End With 
    With ActiveChart.PivotLayout.PivotTable.PivotFields("SA_Failure_Mode") 
     .Orientation = xlRowField 
     .Position = 1 
    End With 
    ActiveChart.ChartType = xlBarStacked 
    With ActiveSheet.PivotTables("PivotTable4").PivotFields("SA_Failure_Mode") 
     .PivotItems("").Visible = False 
     .PivotItems("(blank)").Visible = False 
    End With 
    ActiveSheet.ChartObjects("Chart 6").Activate 
    ActiveSheet.Shapes("Chart 6").IncrementLeft 102 
    ActiveSheet.Shapes("Chart 6").IncrementTop -87 
    With ActiveSheet.PivotTables("PivotTable4").PivotFields("Step") 
     .PivotItems("").Visible = False 
     .PivotItems("(blank)").Visible = False 
    End With 
    Range("G13").Select 
    ActiveSheet.PivotTables("PivotTable4").PivotFields("Step").PivotItems(_ 
     "Implementation").ShowDetail = False 
    Range("H13").Select 
    ActiveSheet.PivotTables("PivotTable4").PivotFields("Step").PivotItems(_ 
     "Solution").ShowDetail = False 
    ActiveSheet.ChartObjects("Chart 6").Activate 
End Sub 

回答

0

修改,并以此作为按您的要求。?:

关键的东西:

1. TableDestination =应与没有透视表一个范围

2.Change:TableDestination =表名称,而不是demoDefaultVersion = xlPivotTableVersion15,而不是10

3.Before调用下面子,activesheet应该是包含sourceData

Sub Make_PivotTable() 
    Debug.Print ActiveWorkbook.PivotCaches.Count 
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ 
     ActiveSheet.UsedRange).CreatePivotTable TableDestination:="demo!R1C1", TableName:= _ 
     "PivotTable1", DefaultVersion:=xlPivotTableVersion10 
    Sheets("demo").PivotTables("PivotTable1").AddFields RowFields:="Name" 
    Sheets("demo").PivotTables("PivotTable1").PivotFields("Age").Orientation = _ 
     xlDataField 

    Debug.Print ActiveWorkbook.PivotCaches.Count 
End Sub 

“你可以看到MS KB link的Office 2007即可了解您的错误的表。

'如果这有助于标记为答案和/或赞成,否则评论实施后发生了什么。

+0

我仍然得到相同的错误。你能看到我下面做错了什么吗? – 2014-10-13 12:36:18

+0

工作表( “担保”)激活 ActiveWorkbook.PivotCaches.Add(SourceType中:= xlDatabase,SourceData:= _ ActiveSheet.UsedRange)。.CreatePivotTable TableDestination:= “!客户帕累托数据R1C1”,表名:= _ “客户帕累托“,DefaultVersion:= xlPivotTableVersion15 – 2014-10-13 12:37:16

+0

工作表名称必须与工作簿中的实际名称匹配。检查TableDestination字符串。 – ZAT 2014-10-13 12:44:50