下面的代码适用于Excel 2013,但并不总是适用于Excel 2010.它在set pvtSource
上引发错误。基于Excel 2013中的功能数据透视表创建数据透视表,但不支持Excel 2010
的错误是:
错误引用 “运行时错误 '-2147417848(80010108)':方法 对象pivotcache'的 'createpivottable' 失败”。
有时它的工作原理没有抛出错误。我无法弄清楚为什么或如何对这段代码进行失败验证。
'Create temp sheet
Dim wksSource As Worksheet
Set wksSource = wbkSource.Sheets.Add(After:=Sheets(Worksheets.Count))
'Create new cache
Dim pvcSource As PivotCache
Dim pvtSource As PivotTable
If Application.Version = "15.0" Then
'Create pivot cache
Set pvcSource = wbkSource.PivotCaches.Create(_
SourceType:=xlExternal, _
SourceData:=ActiveWorkbook.Connections("ThisWorkbookDataModel"), _
Version:=5)
wbkSource.Activate
wksSource.Activate
'Create PivotTable
Set pvtSource = pvcSource.CreatePivotTable(_
TableDestination:=ActiveCell, _
DefaultVersion:=5)
ElseIf Application.Version = "14.0" Then
'Create pivot cache
Set pvcSource = wbkSource.PivotCaches.Create(_
SourceType:=xlExternal, _
SourceData:=ActiveWorkbook.Connections("ThisWorkbookDataModel"), _
Version:=xlPivotTableVersion14)
wbkSource.Activate
wksSource.Activate
'Create PivotTable
Set pvtSource = pvcSource.CreatePivotTable(_
TableDestination:=ActiveCell, _
DefaultVersion:=xlPivotTableVersion14)
End If
我在Excel 2010中也遇到了这个问题,我无法创建* unused * Pivot Cache,我不得不在Pivot Table创建中创建一个* unused * Pivot Cache,然后通过Set pvcSource影响它到Pivot Cache变量= pvtSource.PivotCache'。希望这个帮助! (一个有用的链接,但您可能知道它:https://support.office.com/zh-cn/article/Upgrade-Power-Pivot-Data-Models-to-Excel-2013-c66578cb-74d5-43ae- a474-5a01be5db439 #__ what_s_different_in) – R3uK
我的不好,它是用一个新创建的缓存来更改数据透视表的数据透视表缓存,然后存储它以将其分配给其他人!让我知道它是否帮助你! ;) – R3uK