宏记录 - 透视图不起作用

时间:2014-10-10 23:09:11

标签: excel-vba charts pivot record vba

我尝试录制创建数据透视表的宏。当我在删除旧图表后运行recorderde33d宏时,正在生成错误。 “程序调用或参数无效” 该错误突出显示第一行。可以通过宏完成数据透视图吗?或者它只是在记录宏时不起作用?

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

1 个答案:

答案 0 :(得分:0)

根据您的要求修改并使用它:

关键词:

1. TableDestination =应该是没有数据透视表的范围。

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

3.在调用下面的Sub之前,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

'您可以在office 2007上看到MS KB link以了解您的错误。

'如果这有助于Mark作为答案和/ upvote,否则请评论实施后发生的事情。