EXCEL VBAclosures所有打开的工作簿连接到外部Excel文件

我确实有一个与Excel和数据连接的问题,并希望find一个解决scheme。 情况:我有一个Excel报告2外部数据连接的数据透视表中。 数据连接链接到包含数据透视表的原始数据(基本上只是一个大表)的其他Excel文件,并且已经通过数据/连接使用Excel构buildfunction进行了设置。 现在,每当我想要刷新连接Excel正在耗尽内存停止与一个错误消息。

如果我只刷新一个数据透视表,保存并closures文件,然后刷新它的其他数据透视表,但不是很方便使用。 我注意到,一旦数据已经被读入数据透视表,连接到原始数据文件仍然是开放的,这是大内存消耗的原因…… ..我假设。 如果我删除了连接excel是释放一个loooooooot的内存,这使我猜测,如果我closures数据更新后的连接excel将释放内存。

所以我的问题是:我怎么能一次closuresVBA中的任何打开的工作簿连接? 注意:我认为我在VBA方面非常出色,但我不是专业人士

很多谢谢,丹尼斯干杯

此子将从活动工作簿中删除所有连接:

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 

只需导入数据并在完成后closures连接。

如果您的意思是一次closures所有工作簿中的所有连接,则可以修改RemoveConnections以获取工作簿参数(而不是在ActiveWorkbook上运行),然后遍历Workbooks集合( 未经testing ):

 Dim wb As Workbook For Each wb In Workbooks wb.AcceptAllChanges Call RemoveConnections(wb) Next wb