重新命名一个新的工作表会产生“内存不足”错误 – 为什么?

我试图做一个新的工作表,并给它一个名字使用下面的代码:

Sub CREATEWORKSHEETS() For Each PC In ActiveWorkbook.PivotCaches On Error Resume Next PC.Refresh Next PC PvtCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, "Pivot Data!$AF:$AO") Sheets("P&L Pivot").Select Application.DisplayAlerts = False On Error Resume Next Sheets("MAIN").Delete Application.DisplayAlerts = True On Error GoTo 0 Sheets.Add.Name = "MAIN" End Sub 

但是,每当它尝试创build新的“MAIN”工作表时,我总是会收到“内存不足”错误。 将其分解为以下内容:

 Sheets.Add ActiveSheet.Name = "MAIN" 

build议重命名操作是罪魁祸首,但我不明白为什么。 有没有人知道为什么这可能会发生?

设置一个pivotcache等于整个自动对焦到AO列是造成你打内存的极限。 尝试设置数据透视表caching到一个dynamic命名的范围,你没有一堆额外的单元格在caching中

如果您不确定您的pivotcache可能使用多less内存,请尝试以下操作:(从本网站复制)

您可以使用以下用户定义函数显示数据透视caching使用的内存。 将function代码存储在工作表模块中。 然后,在工作表上input公式:

= GetMemory(A3)/ 1000

用数据透视表中的单元格replaceA3。 结果以千字节显示。

 Function GetMemory(rngPT As Range) As Long 'pivot table tutorial by contextures.com Dim pt As PivotTable Set pt = rngPT.PivotTable GetMemory = ActiveWorkbook _ .PivotCaches(pt.CacheIndex).MemoryUsed End Function