昨天发了一篇文章,演示如何修改一个录制宏成为一个通用宏。但是问题是即使这样还是需要手工打开每一个excel文件,再手动执行宏,效率还是不高。那么今天再接再厉,发一个一键完成同一目录下所有excel文件的统一操作宏代码。先上一段代码,这段代码的作用是用来遍历目标文件夹中的所有excel工作簿,扩展名已经指定为.xlsx,所以如果你把你的宏工作簿放到同一文件夹下也不用担心被一起“操作”了,因为宏工作簿的扩展名是.xlsm。
每一句代码的作用都解释的很清楚,就不多说什么了。
好了,如果现在你直接调用上一篇文章里的宏,直接执行,你会发现虽然所有excel文件都被正确的透视了,但是.....所有文件都是呈打开状态。几十甚至几百个excel文件同时被打开,向上帝祈祷你的电脑还活着吧......
为了不要出现这种尴尬的情况,我们需要在具体操作宏中加入代码,每操作完毕一个工作簿就自动保存并关闭。
用这个:
ActiveWorkbook.Save ActiveWindow.Close
好了,到目前为止,我们已经把整个代码写完了,赶快执行一下看看效果吧。
附上可以直接复制的代码:
Subkey()DimPathAsStringDimFileAsStringDimWBAsWorkbookApplication.ScreenUpdating=False'冻结屏幕,打开各个文件及关闭时屏幕不会晃瞎你的狗眼 Path="c:\temp\"'把目标文件夹路径赋值给变量,这里的路径可以自己改 File=Dir(Path&"*.xlsx")'一次找寻路径中的excel文件,这里到底是.xlsx还是.xls,可以自己改 DoWhileFile