Type mismatch error when creating a pivot table in Excel with VBA

匿名 (未验证) 提交于 2019-12-03 01:39:01

问题:

I'm trying to put a macro together that will make a simple pivot table using the data from an active worksheet. When I try to run it, I receive a type mismatch error. When I start the debugger, the first section is highlighted: ActiveWorkbook.PivotCaches through xlPivotTableVersion10. Initially, the TableDestination was blank and I thought that might be the problem, but after adding a destination I still get the same error.

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:

This worked for me (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

Make sure you don't already have an existing conflicting pivot cache/table.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!