EXCEL VBA关闭所有打开的外部Excel文件的工作簿连接
问题描述:
我的Excel和数据连接有问题,希望找到解决方案。 情况:我有一个带有2个外部数据连接的Excel报表,这些数据连接被传送到数据透视表中。数据连接链接到其他Excel文件,其中包含数据透视表的原始数据(基本上只是一个大表),并且已通过数据/连接功能使用Excel构建函数进行设置。现在,每当我想要刷新连接时,Excel将耗尽内存,并显示一条错误消息。EXCEL VBA关闭所有打开的外部Excel文件的工作簿连接
如果我只刷新一个数据透视表,保存并关闭该文件,然后刷新它的其他数据透视表,但不便于使用。 我注意到的是,一旦数据被读入数据透视表,与原始数据文件的连接仍然是开放的,这是大内存消耗的原因...... ..我假设。如果我删除了连接,excel会释放一个loooooooot的内存,这让我猜测如果在数据更新后关闭连接,excel将释放内存。
所以我的问题是:我怎样才能关闭任何打开的工作簿连接在VBA一次? 注:我觉得我在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
只需导入数据并在完成后关闭连接。
如果你的意思是关闭所有的所有工作簿一次,你可以修改RemoveConnections连接取一个工作簿参数(而不是在ActiveWorkbook操作),然后通过该工作簿集合(未经测试)迭代:
Dim wb As Workbook
For Each wb In Workbooks
wb.AcceptAllChanges
Call RemoveConnections(wb)
Next wb
大家好。没有人能帮到这里吗?真的很期待得到这个解决。替代解决方案也是受欢迎的。非常感谢,丹尼斯 – Dennis
没人?它仍然是相关的! – Dennis