Excel 工作簿的文件大小每次创建新数据透视表 table 并保存文件时都会增加

File size of an Excel Workbook increases every time I create a new pivot table and save the file

我有一个 vba 宏,它根据输入 sheet 中的一些数据创建一个枢轴 table。每次宏运行时,都会删除旧数据透视并创建新数据透视。

我面临的问题是,每次我在 运行 宏之后保存文件时,文件大小都会增加大约 14MB。

这就是我删除旧数据透视表的方式 table:

For Each pivot In reportSht.PivotTables
    pivot.TableRange2.Clear
Next pivot

我的理论是枢轴的某些部分没有被删除,但我似乎无法指出是什么。

我找到了解决问题的方法。当我创建枢轴 tables 时,我还添加了连接,因为我需要在枢轴 table:

中显示唯一条目的数量
ActiveWorkbook.Connections.Add2 "WorksheetConnection_" & inputDataArea, "", _
    "WORKSHEET;" & ActiveWorkbook.Path & "\[" & ActiveWorkbook.name & "]" _
    & inputSht.name, inputDataArea, 7, True, False

其中 inputDataArea 是一个字符串,其范围用于主元 table。我的问题是,当我删除枢轴 table 时,我没有删除这些连接。因此每次执行宏时都会添加一个新连接。

我添加这段代码也是为了删除删除枢轴后不再需要的任何连接 table:

Dim connection As Object

For Each connection In ActiveWorkbook.Connections
    If connection.name <> "ThisWorkbookDataModel" Then connection.Delete
Next connection

该文件仍然很大但易于管理,最重要的是它不再增长了。

感谢 Pᴇʜ 建议我删除数据透视缓存并指出,这些缓存与连接一起被删除。