我需要安全地将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)
但是,当我导入的数据透镜太大时,我在修改缓存索引属性时收到错误"内存不足".然后,即使文件关闭,如果我尝试重新打开它,它就会被破坏.有没有更好的方法在数据透视表之间传输数据透视表缓存?
我无法使用Excel Professional 2010重现资源问题...但是您尝试过这种更简单的可能性吗?:
Public Sub TransferPivotCache(SourcePivot As PivotTable, TargetPivot As PivotTable)
TargetPivot.CacheIndex = SourcePivot.CacheIndex
End Sub
Run Code Online (Sandbox Code Playgroud)
看起来它的作用是相同的(至少在同一工作簿中),并且避免创建一个全新的工作表。