2015-12-30 794 views
1

我的Excel和數據連接有問題,希望找到解決方案。 情況:我有一個帶有2個外部數據連接的Excel報表,這些數據連接被傳送到數據透視表中。數據連接鏈接到其他Excel文件,其中包含數據透視表的原始數據(基本上只是一個大表),並且已通過數據/連接功能使用Excel構建函數進行設置。現在,每當我想要刷新連接時,Excel將耗盡內存,並顯示一條錯誤消息。EXCEL VBA關閉所有打開的外部Excel文件的工作簿連接

如果我只刷新一個數據透視表,保存並關閉該文件,然後刷新它的其他數據透視表,但不便於使用。 我注意到的是,一旦數據被讀入數據透視表,與原始數據文件的連接仍然是開放的,這是大內存消耗的原因...... ..我假設。如果我刪除了連接,excel會釋放一個loooooooot的內存,這讓我猜測如果在數據更新後關閉連接,excel將釋放內存。

所以我的問題是:我怎樣才能關閉任何打開的工作簿連接在VBA一次? 注:我覺得我在VBA相當不錯,但我不事先 專業的

非常感謝乾杯,丹尼斯

+0

大家好。沒有人能幫到這裏嗎?真的很期待得到這個解決。替代解決方案也是受歡迎的。非常感謝,丹尼斯 – Dennis

+0

沒人?它仍然是相關的! – Dennis

回答

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操作),然後通過該工作簿集合(未經測試)迭代:

Dim wb As Workbook 

For Each wb In Workbooks 
    wb.AcceptAllChanges 
    Call RemoveConnections(wb) 
Next wb 
相關問題