我确实遇到Excel和数据连接问题,希望找到解决方案。 情况:我有一个带有2个外部数据连接的Excel报告,它们被提供给数据透视表。数据连接链接到包含数据透视表的原始数据的其他Excel文件(基本上只有一个大表),并通过数据/连接使用Excel内置功能进行设置。现在,每次我想刷新连接时Excel都会因内存不足而停止并显示错误消息。
如果我只刷新一个数据透视表,保存并关闭该文件,然后刷新其工作的其他数据透视表,但使用起来不是很方便。 我注意到的是,一旦数据被读入数据透视表,与原始数据文件的连接仍然是打开的,这是大内存消耗的原因......我假设。如果我删除连接excel正在释放loooooooot的内存,这让我猜测,如果我在数据更新后关闭连接,excel将释放内存。
所以我的问题是:如何立即关闭VBA中任何打开的工作簿连接? 注意:我觉得我很擅长VBA,但我不是专业人士
非常感谢提前 干杯,丹尼斯
答案 0 :(得分:1)
此子网将删除活动工作簿中的所有连接:
Sub RemoveConnections()
Dim conn As Long
With ActiveWorkbook
For conn = .Connections.Count To 1 Step -1
.Connections(conn).Delete
Next conn
End With
End Sub
完成后只需导入数据并关闭连接。
如果您意味着立即关闭所有工作簿中的所有连接,则可以修改RemoveConnections以获取工作簿参数(而不是在ActiveWorkbook上运行),然后遍历Workbooks集合( untested ):< / p>
Dim wb As Workbook
For Each wb In Workbooks
wb.AcceptAllChanges
Call RemoveConnections(wb)
Next wb