2013-06-20 457 views
3

在一個更大的Excel應用程序中(25張,50個命令按鈕,5000行代碼,18個用戶表單...大小12 MB)...我們從服務器上載入表格作爲txt文件並使用標準程序重新轉換這些txt_files以優化數據。 通過宏,我們刪除了下載後的所有查詢表和連接。vba excel連接查詢表刪除

一切工作都很完美和快捷,但現在主表變得越來越慢。 即使打開工作簿也需要越來越多的時間,而尺寸保持不變。

不知怎的,我有一種感覺,有來自txt_files數據傳輸未與刪除的remainings:

Dim ws As Worksheet 
Dim qt As QueryTable 
For Each ws In ThisWorkbook.Worksheets 
For Each qt In ws.QueryTables 
qt.Delete 
Next qt 
Next ws 

If ActiveWorkbook.Connections.Count > 0 Then 
For i = 1 To ActiveWorkbook.Connections.Count 
ActiveWorkbook.Connections.Item(1).Delete 
Next i 
EndIf 

有工作簿中沒有公式。 減速持續下去,甚至選擇main_sheet的所有單元格+清除...我想所有的單元格在該命令之後都是空的...

在其他24張表格中沒有speed_problems(甚至過濾列表850.000 x 33)

任何想法如何檢查什麼是減慢main_sheet中的工作簿? 是否有更強大的「清理」命令,然後刪除查詢表和連接? 是否有任何方法記錄什麼是擅長做,而它不會返回命令?

+0

我讀的地方,開始用Excel 2007中,你必須每個ActiveSheet.ListObjects – Antony

+0

內處理的QueryTable如果你想清除main_sheet,你應該選擇所有並在鍵盤上按(控制& - )這是控制鍵,同時按住數字鍵盤上的減號鍵,這應該刪除所有的單元格,而不僅僅是清除內容,因此釋放一些內存... – Xabier

回答

0

試試這個:

ActiveSheet.UsedRange.EntireRow.Delete 

檢查也公式/命名範圍與新的指定範圍添加每個表的ListObject。

Sub DeleteAllNamedRanges() 
Dim NR As Name 
For Each NR In Application.ActiveWorkbook.Names 
    NR.Delete 
Next 
End Sub