最快(最安全)的方式来创build1300个工作簿?

我有一个工作簿与一些数据,我想过滤,然后将过滤的数据保存到新的工作簿。 函数如下所示:

Sub bleh() For Each i In Number ~~ filter, copy, paste, save ~~ Next i End Sub 

除了优化代码,它是更快,更安全

  1. 将每个工作表保存为每个迭代中的新工作簿
  2. 保存当前工作簿中的每个工作表,并在最后将整个工作簿切割为单独的工作簿?

或者也许别的东西?

谢谢您的意见。

1300个文件? 忘记VBA,甚至忘记Excel互操作。

我会使用一些C#或VB.NET,并使用OpenXML来处理文件的结构 ,asynchronous地在内存中生成1,300个OpenXML文档(即工作簿)(希望每张表格不会有数十万行数据),然后一旦你有了所有你需要知道的东西,迭代所有这些工作簿对象,并顺序保存到磁盘(可能显示进度条或其他)。 使asynchronousI / O不会帮助任何东西。

每个文件写入将被包装在一个try/catch块中,并且在处理过程中抛出的任何exception将通过logging足够的信息来处理,以便稍后识别失败的页面(可以被输出到该进度栏下的locking文本框),然后继续尝试下一个。


在VBA中这样做会永远运行:为每个工作簿创build4秒,保存并closures – 您的macros将运行至less5200秒,这大约是一个半小时。