使用VBA在Excel中创建数据透视表时键入不匹配错误

时间:2011-12-09 19:09:02

标签: excel vba pivot-table

我正在尝试将宏放在一起,使用活动工作表中的数据创建一个简单的数据透视表。当我尝试运行它时,我收到类型不匹配错误。当我启动调试器时,第一部分突出显示:ActiveWorkbook.PivotCaches到xlPivotTableVersion10。最初,TableDestination是空白的,我认为这可能是问题,但在添加目标后,我仍然得到相同的错误。

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
SourceData:=ActiveSheet.UsedRange).CreatePivotTable TableDestination:="Sheet1!R3C1", _
TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10

ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(1, 1)

With ActiveSheet.PivotTables("PivotTable1").PivotFields("Program Name")
    .Orientation = xlColumnField
    .Position = 1
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
    "PivotTable1").PivotFields("Dollars Awarded"), "Sum of Dollars Awarded", xlSum
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Dept Head")
    .Orientation = xlRowField
    .Position = 1
End With

1 个答案:

答案 0 :(得分:2)

这对我有用(XL2007):

Sub Tester()

    With ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
        SourceData:=ActiveSheet.UsedRange)

        .CreatePivotTable TableDestination:="Sheet1!R3C1", _
        TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10

    End With

    With Sheet1.PivotTables("PivotTable1")
        .PivotFields("Dept Head").Orientation = xlColumnField
        .PivotFields("Program Name").Orientation = xlRowField
        .AddDataField .PivotFields("Cost"), "Sum of cost", xlSum
    End With

End Sub

确保您还没有现有冲突的数据透视缓存/表。