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

问题描述 投票:0回答:1

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

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

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

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

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

excel vba filesize
1个回答
2
投票

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

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


推荐问答