无法使用VBA从Power Pivot数据模型创建数据透视表

时间:2014-07-14 17:24:34

标签: excel vba excel-vba

使用Excel 2013,我正在尝试使用 PivotTables.Add 方法使用现有的Power Pivot模型在工作簿中创建数据透视表。我的 PivotCache 似乎有问题。这是我到目前为止所做的:

    Dim pc As PivotCache, i As Long
    '
    i = 1
    For Each pc In ActiveWorkbook.PivotCaches
      Range("a" & i).Value = pc.Index
      Range("b" & i).Value = pc.CommandText
      i = i + 1
    Next

产生这个:

1    Model
2    Model
3    Model

但是,运行以下操作会引发运行时错误:

    Range("a1").Select
    ActiveSheet.PivotTables.Add _
    PivotCache:=ActiveWorkBook.PivotCaches(1), _
    TableDestination:=Range("A3")

错误是:

Run-time Error '1004':
Application-defined or object-defined error

所有三个可用的PivotCache索引都会发生错误(1-3)。

FWIW,我可以在PowerPivot功能区下手动添加数据透视表。管理>主页>数据透视表。我正试图在VBA中完成同样的事情。顺便说一下,在我开始操作刚刚创建的数据透视表之前,记录宏不记录任何内容。

非常感谢任何帮助。

...谢谢约什

1 个答案:

答案 0 :(得分:0)

虽然现在为时已晚,但这可能有助于其他人:

Sub xlPivotTable()

   Dim pc As PivotCache
   Dim pt As PivotTable

   'Create PivotCache from PowerPivot Data Model
   Set pc = ThisWorkbook.PivotCaches.Create(SourceType:=xlExternal, _
   SourceData:=ThisWorkbook.Connections("ThisWorkbookDataModel"), _
   Version:=xlPivotTableVersion15)

   'Create PivotTable from PivotCache
   Set pt = pc.CreatePivotTable(TableDestination:=ActiveCell, _
   DefaultVersion:=xlPivotTableVersion15)

   Set pt = Nothing
   Set pc = Nothing

End Sub

对于Excel 2010,将xlPivotTableVersion更改为14,将Excel 2013和2016更新为15。