【发布时间】:2014-08-12 06:56:43
【问题描述】:
- Excel 2010
我自己打开带有原始测量值的文件后,我有一个宏,它对原始数据执行一些操作,即对其进行排序、删除一些内容、将一些内容复制到新工作表中。
最后,它关闭原始数据文件(而不保存更改)并关闭、保存和重命名新创建的 Excel 文件,该文件是在所有排序、删除和复制后创建的宏。
所以考虑到我只打开了这个宏文件 (.xlsm)...
如何在所述宏文件的同一文件夹中的所有 Excel 文件 (.xlsx) 上运行该宏?我不想一个一个打开它们并重新运行宏。
我目前正在通过以下方式关闭打开的“原始”文件:
ActiveWorkbook.Saved = True
ActiveWorkbook.Close SaveChanges:=False
Application.DisplayAlerts = True
不得不承认我不知道它们是否完全有意义,但它们确实有效。
【问题讨论】:
-
I'd prefer not to open them one by one and re-run the macro again考虑到您performs some actions on "raw" measurement data, sorts it, deletes some stuff, copies some stuff into a new sheet,这是不可能的。您可以使用 DIR 函数迭代文件夹中的每个文件,这里有很多示例。 -
@mehow 是的。但这并不意味着唯一的方法就是不打开它。如果 OP 正在进行排序、删除和复制,我认为没有比先打开工作簿更好的执行方法了。
-
@L42 你可能是对的,在这个级别上,听起来开放是正确的做法,但一般来说,如果有一些工作簿可以提高性能,那么在某个时候就会发挥作用然后 OP 就会意识到 ADO 可能是最好的选择。