每次创建新数据透视表并保存文件时,Excel工作簿的文件大小都会增加
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每次创建新数据透视表并保存文件时,Excel工作簿的文件大小都会增加相关的知识,希望对你有一定的参考价值。
我有一个vba宏,它根据输入表中的一些数据创建一个数据透视表。每次运行宏时,都会删除旧的轴,并创建一个新的轴。
我面临的问题是每次运行宏后保存文件,文件大小增加大约14MB。
这是我删除旧数据透视表的方法:
For Each pivot In reportSht.PivotTables
pivot.TableRange2.Clear
Next pivot
我的理论是枢轴的某些部分没有被删除,但我似乎无法指出什么。
答案
我找到了解决问题的方法。当我创建数据透视表时,我还添加了连接,因为我需要在数据透视表中显示唯一条目的数量:
ActiveWorkbook.Connections.Add2 "WorksheetConnection_" & inputDataArea, "", _
"WORKSHEET;" & ActiveWorkbook.Path & "[" & ActiveWorkbook.name & "]" _
& inputSht.name, inputDataArea, 7, True, False
其中inputDataArea
是一个String,其范围用于数据透视表。我的问题是,当我删除数据透视表时,我没有删除这些连接。因此,每次执行宏时都会添加一个新连接。
我添加了这段代码,以便在删除数据透视表后删除不再需要的任何连接:
Dim connection As Object
For Each connection In ActiveWorkbook.Connections
If connection.name <> "ThisWorkbookDataModel" Then connection.Delete
Next connection
该文件仍然很大但可管理,最重要的是它不再增长。
感谢Pᴇʜ建议我删除数据透视缓存并指出,这些与连接一起被删除。
以上是关于每次创建新数据透视表并保存文件时,Excel工作簿的文件大小都会增加的主要内容,如果未能解决你的问题,请参考以下文章
如果工作簿包含数据透视表,则添加数据后无法保存 Excel 工作表