繁体   English   中英

Excel 2010 vba在Excel 2012中不起作用

[英]Excel 2010 vba not working in Excel 2012

我有VBA代码,该代码会根据从另一个工作簿复制到当前工作簿的某些数据自动创建数据透视表。 当我在机器上运行它时,就可以了。 另一个人也没有问题,但是一个女人遇到了有关“运行时错误'5':无效的过程调用或参数”的错误,并突出显示了我的代码

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

我的代码复制了新的数据表,每次都将其重命名为“ Call Data-Date Time”,并每次都在新的工作表上创建一个新的数据透视表,所以我不认为这是导致问题的表名,特别是因为它对我来说很好。 她是唯一一个有问题的人。 有任何想法吗?

这是所有代码:

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

并且它在Set PC上失败。 我也尝试了xlPivotTableVersion15,但是也失败了。

我认为问题是由于数据透视表的版本即本节所致:
Version:=xlPivotTableVersion14
Version14适用于Excel2010。我不确定2012年的版本号。
尝试将其更改为:
DefaultVersion:=xlPivotTableVersionCurrent并查看它是否运行。

以下是可用版本的列表(摘自: http : //msdn.microsoft.com/zh-cn/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是指仅提供用于向后兼容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM