每当我创建一个新的枢轴表并保存文件时,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是一个字符串,其范围用于枢轴表。我的问题是,当我删除枢轴表时,我并没有删除这些连接。因此,每次执行宏时都会添加一个新的连接。

我添加了此代码,还可以删除删除枢轴表后不再需要的任何连接:

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

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

感谢Pᴇʜ建议我删除枢轴缓存并指出,它们与连接一起删除。

最新更新