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

时间:2019-04-30 11:39:42

标签: excel vba filesize

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

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

这是我删除旧数据透视表的方法:

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

我的理论是枢轴的某些部分没有被删除,但是我似乎无法将注意力放在什么上。

1 个答案:

答案 0 :(得分:2)

我找到了解决我问题的方法。创建数据透视表时,我还添加了连接,因为我需要显示数据透视表中的唯一条目数:

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ᴇʜ建议我删除数据透视缓存并指出,这些缓存与连接一并删除。