2013-06-20 458 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