Excel 2010 vba不能在Excel 2012中工作

我有vba代码,从一些从另一个工作簿复制到当前工作簿的数据自动创build数据透视表。 当我在我的机器上运行它时,它很好。 另一个人也没有问题,但是,一个女人得到一个关于“运行时错误5”的错误:无效的过程调用或参数“,它突出了我的代码

"ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "WorkRange", Version:=xlPivotTableVersion14).CreatePivotTable _ TableDestination:=ActiveSheet.Cells(3,1), TableName:="PivotTable2", DefaultVersion _ :=xlPivotTableVersion14 

我的代码复制新的数据表,每次重命名为“调用数据 – date时间”,并在每个新表上创build一个新的数据透视表,所以我不认为这是表名造成的问题,特别是因为它对我运行良好。 她是唯一有问题的人。 有任何想法吗?

这里是所有的代码:

 Sub GeneratePivot() ' ' Macro11 Macro ' Dim myDate As Date, aDate myDate = Date + 7 - Weekday(Date) aDate = Format(myDate, "mm.dd.yyyy") Dim LValue As Date LValue = Now Range("A1").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select ActiveWorkbook.Names.Add Name:="WorkRange", RefersTo:=Selection Range("C5").Select Application.Goto Reference:="WorkRange" Sheets.Add ActiveSheet.Name = "SummaryData " & Format(DateTime.Now, "MM.dd.yy hh.mm.ss") ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "WorkRange", Version:=xlPivotTableVersion14).CreatePivotTable _ TableDestination:=ActiveSheet.Cells(3, 1), TableName:="PivotTable2", DefaultVersion _ :=xlPivotTableVersion14 ActiveSheet.Select Cells(3, 1).Select With ActiveSheet.PivotTables("PivotTable2").PivotFields("Month") .Orientation = xlColumnField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable2").PivotFields("Site/Location") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable2").PivotFields("Called Number") .Orientation = xlRowField End With ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _ "PivotTable2").PivotFields("Called Number"), "Count of Called Number", xlCount With ActiveSheet.PivotTables("PivotTable2").PivotFields("Site/Location") .PivotItems("#N/A").Visible = False End With Columns("A:A").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove End Sub 

所以我更新了可疑的线路:

 Dim PC As PivotCache Dim pt As PivotTable Set PC = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "WorkRange", Version:=xlPivotTableVersionCurrent) Set pt = PTCache.CreatePivotTable _ (TableDestination:=ActiveSheet.Cells(3, 1), _ TableName:="PivotTable1", _ DefaultVersion:=xlPivotTableVersionCurrent) PC.CreatePivotTable TableDestination:=ActiveSheet.Cells(3, 1), TableName:="PivotTable1", DefaultVersion _ :=xlPivotTableVersionCurrent 

它在集PC上失败。 我也尝试过xlPivotTableVersion15,但也失败了。

我认为这个问题是因为数据透视表的版本,即本节:
Version:=xlPivotTableVersion14
Version14适用于Excel 2010.我不确定2012年的版本号是多less。
尝试将其更改为:
DefaultVersion:=xlPivotTableVersionCurrent ,看看它是否运行。

这里是一个列表(从这里取: http : //msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlpivottableversionlist (v= office.15 ) .aspx )与可用的版本。 我没有看到Excel 2012,所以你的里程可能会有所不同:

xlPivotTableVersion2000引用Excel 2000
xlPivotTableVersion10引用Excel 2002
xlPivotTableVersion11引用Excel 2003
xlPivotTableVersion12引用Excel 2007
xlPivotTableVersion14引用Excel 2010
xlPivotTableVersion15引用Excel 2013
xlPivotTableVersionCurrent指仅为了向后兼容而提供