将Pivot Cache从一个文件上的Pivot传输到另一个文件上的Pivot?

lis*_*aro 7 excel vba pivot

我需要安全地将Excel文件上的数据透视表的缓存转移到另一个文件的数据透视表中.我怎样才能做到这一点?


这是我现在使用的代码(请注意,即使已消除Source pivot Data Source,此方法仍然有效):

Public Sub TransferPivotCache(Source As PivotTable, Target As PivotTable)
    Dim TempSheet As Worksheet
    Set TempSheet = ThisWorkbook.Sheets.Add
    Source.TableRange2.Copy Destination:=TempSheet.Range("A1")
    Target.CacheIndex = TempSheet.PivotTables(1).CacheIndex
    TempSheet.Delete
End Sub
Run Code Online (Sandbox Code Playgroud)

但是,当我导入的数据透镜太大时,我在修改缓存索引属性时收到错误"内存不足".然后,即使文件关闭,如果我尝试重新打开它,它就会被破坏.有没有更好的方法在数据透视表之间传输数据透视表缓存?

在此输入图像描述

J. *_*mel 0

我无法使用Excel Professional 2010重现资源问题...但是您尝试过这种更简单的可能性吗?:

Public Sub TransferPivotCache(SourcePivot As PivotTable, TargetPivot As PivotTable)
  TargetPivot.CacheIndex = SourcePivot.CacheIndex
End Sub
Run Code Online (Sandbox Code Playgroud)

看起来它的作用是相同的(至少在同一工作簿中),并且避免创建一个全新的工作表。