繁体   English   中英

EXCEL VBA关闭所有打开的工作簿与外部Excel文件的连接

[英]EXCEL VBA close all open Workbook connections to external Excel Files

我的Excel和数据连接确实有问题,希望找到解决方案。 情况:我有一个带有2个外部数据连接的Excel报表,该数据馈入数据透视表。 数据连接链接到其他Excel文件,这些文件包含数据透视表的原始数据(基本上只是一个大表),并且已通过数据/连接使用Excel内置函数进行了设置。 现在,每次我要刷新连接时,Excel都将耗尽内存,并显示一条错误消息。

如果仅刷新一个数据透视表,请保存并关闭文件,然后刷新另一个数据透视表,该表可以工作,但使用起来不太方便。 我注意到的是,一旦将数据读入数据透视表,与原始数据文件的连接仍处于打开状态,这是消耗大量内存的原因……我想。 如果我删除连接,excel将释放大量的内存,这使我猜测如果在更新数据后关闭连接,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上进行操作),然后遍历Workbooks集合( 未经测试 ):

Dim wb As Workbook

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM