在VBA中创建数据透视表

时间:2013-11-12 14:20:53

标签: excel vba excel-vba

我正在使用下面的代码尝试在Excel中创建数据透视表,但它似乎无法正常工作

    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select

Dim AllData As Range
Set AllData = selection.CurrentRegion

    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=AllData).CreatePivotTable TableDestination:= _
        "'[Process Data v2.xls]Pivot'!R4C1", TableName:="PivotTable3", _
        DefaultVersion:=xlPivotTableVersion10

错误在于数据透视表部分,并且是运行时错误5.无效的过程调用或参数。

我试过录制一个宏并在脚本中有一个精确的范围并且它可以工作,但用'Alldata'变量替换它会破坏它。我尝试了很多东西,但无法弄清楚为什么它不起作用

1 个答案:

答案 0 :(得分:2)

尝试拆分您的代码,以便将数据透视缓存和表创建分开:它会让您更好地了解实际错误的位置:

Dim pc, pt
Dim AllData As Range

Set AllData = Range("A1").CurrentRegion

Set pc = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
                                        SourceData:=AllData)
Set pt = pc.CreatePivotTable TableDestination:= _
              "'[Process Data v2.xls]Pivot'!R4C1", _
              TableName:="PivotTable3", DefaultVersion:=xlPivotTableVersion10