我有一个vba代码,它可以根据从其他工作簿复制到当前工作簿的一些数据自动创建数据透视表。当我在我的机器上运行它时,它很好。另一个人有没有问题,或者说,但一个女人获得有关“运行时错误‘5’:无效的过程调用或参数”的错误,并重点介绍了我的代码Excel 2010 vba不能在Excel 2012中工作
"ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"WorkRange", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:=ActiveSheet.Cells(3,1), TableName:="PivotTable2", DefaultVersion _
:=xlPivotTableVersion14
我的代码将新数据并每次重命名为“调用数据 - 日期时间”,并且每次在新工作表上创建一个新的数据透视表,所以我不认为这是表名导致问题,尤其是因为它对我来说运行良好。她是唯一有问题的人。有任何想法吗?
这里是所有的代码:
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
它failes设置PC上。我也尝试过xlPivotTableVersion15,但也失败了。
有很多去在这一行中,所以一个好的开始可能是将其分解成单独的行,它们首先创建PivotCache然后创建数据透视表。 –
她是否打开启用宏的工作表? http://office.microsoft.com/en-001/excel-help/enable-or-disable-macros-in-office-files-HA010354316.aspx – smoore4
@SQLDBA - 她得到一个运行时错误,所以宏启用... –