每次创建新数据透视表并保存文件时,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 工作表

使用宏刷新我的 excel 工作簿中的所有数据透视表

pandas如何在现有的Excel表格上新建工作表并添加dataframe

将新创建的工作簿保存到特定文件夹

打开文件时将文件的副本保存在特定文件夹中

自动保存 Excel 文件