如何在VBA中创建数据透视表

aSy*_*oad 5 excel vba excel-vba excel-2010

我正在尝试创建一个Pivot表,但得到了Invalid Procedure Call or Argument.

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="rng", Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:="rngB", TableName:="pvtReportA_B", DefaultVersion:=xlPivotTableVersion14
Run Code Online (Sandbox Code Playgroud)
  • rng (源)是由大约20列和几千行组成的范围.
  • rngB (目标)是不同工作表中的单个单元格

谁能告诉我哪里出错?

编辑:

我的错,我本来应该使用rngData而不是rng作为来源.

    Set rng = wsA.Range("C14")
    Set rngData = Range(rng, rng.End(xlToRight))
    Set rngData = Range(rng, rng.End(xlDown))
    Set rngB = wsB.Range("C8")

    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=rngData, Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:=rngB, TableName:="pvtReportA_B", DefaultVersion:=xlPivotTableVersion14
Run Code Online (Sandbox Code Playgroud)

这使得数据透视表框架很好.

aSy*_*oad 4

在本例中,我使用了错误的范围对象,导致 Excel 出现异常。

Set rng = wsA.Range("C14")
Set rngData = Range(rng, rng.End(xlToRight))
Set rngData = Range(rng, rng.End(xlDown))
Set rngB = wsB.Range("C8")

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=rngData, Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:=rngB, TableName:="pvtReportA_B", DefaultVersion:=xlPivotTableVersion14
Run Code Online (Sandbox Code Playgroud)