首页 文章

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

提问于
浏览
1

我确实有Excel和数据连接的问题,希望找到一个解决方案 . 情况:我有一个带有2个外部数据连接的Excel报告,它们被提供给数据透视表 . 数据连接链接到包含数据透视表的原始数据的其他Excel文件(基本上只有一个大表),并通过数据/连接使用Excel内置功能进行设置 . 现在,每当我想刷新连接时,Excel的内存不足就会停止并显示错误消息 .

如果我只刷新一个数据透视表,保存并关闭该文件,然后刷新其工作的其他数据透视表,但使用起来不是很方便 . 我注意到的是,一旦数据被读入数据透视表,与原始数据文件的连接仍然是打开的,这是大内存消耗的原因......我假设 . 如果我删除连接excel正在释放loooooooot的内存,这让我猜测,如果我在数据更新后关闭连接,excel将释放内存 .

所以我的问题是:如何立即关闭VBA中任何打开的工作簿连接?注意:我觉得我很擅长VBA,但我不是专业人士

非常感谢干杯,丹尼斯

1 回答

  • 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集合(未经测试):

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

相关问题