2

快速一个,得到以下代码,它会根据数据集合“数据”创建一个数据透视表。我在创建它的 PC 上运行它,该 PC 运行 Excel 2013 没有问题,但是当我在 Excel 2007 或 Excel 2010 上运行它时,它在 Range("A1") 之后的行上抛出一个无效的过程调用或参数错误。选择

这是一个 excel 版本错误,因为用 Excel 2013 编写但在 2007 或 2010 上使用?

    Sheets("Pivot").Select
    Range("A1").Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Data", Version:=xlPivotTableVersion15).CreatePivotTable TableDestination:= _
        "Pivot!R1C1", TableName:="PivotTable4", DefaultVersion:= _
        xlPivotTableVersion15
    Sheets("Pivot").Select
    Cells(1, 1).Select
    With ActiveSheet.PivotTables("PivotTable4").PivotFields("Date Only")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable4").PivotFields("Species")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable4").AddDataField ActiveSheet.PivotTables( _
        "PivotTable4").PivotFields("Number"), "Sum of Number", xlSum

如果这是一个版本问题,我认为它可能是人们使用 DefaultVersion:=xlPivotTableVersion14 和 12 有谁知道哪个版本适用于 Excel 2007 或 Excel 2010?我假设如果我输入正确的 2007 版本,它将向后兼容 2010 和 2013 等...?

提前干杯

4

2 回答 2

6

我认为Version:=xlPivotTableVersion15这是 Excel 2013 特有的问题。这是 Excel 2010 的帮助:

在此处输入图像描述

它是一个可选参数,在 Excel 2010 中,无论是否使用它,都可以正确创建数据透视表。

于 2013-03-08T19:40:05.467 回答
0

我想它会向后兼容,但你总是可以检查版本并相应地构建你的代码。我相信

application.version

将为您提供 excel 中的当前版本。

于 2013-03-08T18:56:05.920 回答