在已启用macros的工作簿中处理大量数据

我有15个左右的工作簿与大量的数据(2000行,约120000活动单元格,我想要使用),我试图创build一个基本上是一个search引擎,有人可以键入一个标准,然后Excel或某事否则返回符合条件的行。

我有这样的工作

伪代码

Map drive (files are stored on sharepoint) Loop workbookdata1 to workbookdata15 Copy data from sheet to new sheet in workbookMAIN Loop through columns, keeping only relevant columns, deleting the rest Loop through rows, deleting row if first cell = blank or "xxx" Next workbookdata Compile all of the data from the newly generated sheet Make it look nice and readable 

这个工作,但它需要45分钟 – 小时运行,因为它打开每个表更新链接(所有2000行),然后不得不过滤所有不需要的数据。

我有什么方法可以加快速度? 我可以使用Access或MATLAB更快速地处理数据,还是可以编码?

一些想法。

1)如果主要的罪魁祸首是链接的更新,那就用with停止更新

 Workbooks.Open fullFileName, UpdateLinks:=False 

2)我怀疑复制一切,然后删除你不需要的东西是非常耗时的 – 这真的有必要吗? 你可以尝试骑单车通过数据,并确定什么是相关的,并复制? 我想这可能取决于你如何进行search,但是如果你正在经历和testing每一行(不知道你是否需要这样做),那么你可以确定第一行符合标准,继续下去,直到你击中行不符合标准。 然后复制并粘贴行(或其中的部分)从第一个开始,结束与符合您的标准的最后一个。 一旦你做完了这个,继续循环你的数据。 您甚至可以收集表格中的所有范围(例如,使用联合声明),并且一旦到达工作表的末尾,最后将其全部复制到一个声明中。

不知道这是你在找什么。 这可能有助于更多地了解您的数据和您拥有的标准types。

编辑1:是的,将覆盖链接的更新。 还有你尝试设置计算模式手动,并确保屏幕更新设置为false? 这些可能会让你放慢脚步。