用VBA自动操作目录下所有Excel文件 您所在的位置:网站首页 vba文件夹复制 用VBA自动操作目录下所有Excel文件

用VBA自动操作目录下所有Excel文件

2023-04-01 21:45| 来源: 网络整理| 查看: 265

昨天发了一篇文章,演示如何修改一个录制宏成为一个通用宏。但是问题是即使这样还是需要手工打开每一个excel文件,再手动执行宏,效率还是不高。那么今天再接再厉,发一个一键完成同一目录下所有excel文件的统一操作宏代码。

先上一段代码,这段代码的作用是用来遍历目标文件夹中的所有excel工作簿,扩展名已经指定为.xlsx,所以如果你把你的宏工作簿放到同一文件夹下也不用担心被一起“操作”了,因为宏工作簿的扩展名是.xlsm。

每一句代码的作用都解释的很清楚,就不多说什么了。

好了,如果现在你直接调用上一篇文章里的宏,直接执行,你会发现虽然所有excel文件都被正确的透视了,但是.....所有文件都是呈打开状态。几十甚至几百个excel文件同时被打开,向上帝祈祷你的电脑还活着吧......

为了不要出现这种尴尬的情况,我们需要在具体操作宏中加入代码,每操作完毕一个工作簿就自动保存并关闭。

用这个:

ActiveWorkbook.Save ActiveWindow.Close

好了,到目前为止,我们已经把整个代码写完了,赶快执行一下看看效果吧。

附上可以直接复制的代码:

Sub key() Dim Path As String Dim File As String Dim WB As Workbook Application.ScreenUpdating = False '冻结屏幕,打开各个文件及关闭时屏幕不会晃瞎你的狗眼 Path = "c:\temp\" '把目标文件夹路径赋值给变量,这里的路径可以自己改 File = Dir(Path & "*.xlsx") '一次找寻路径中的excel文件,这里到底是.xlsx还是.xls,可以自己改 Do While File "" '当指定路径中由文件时进行循环 Set WB = Workbooks.Open(Path & File) '打开符合要求的文件 Call 你的具体操作宏 '调用你的另一端对每个excel文件进行具体操作的宏,也可以直接写到这个宏中 File = Dir '找寻下一个excel文件 Loop Application.ScreenUpdating = True '解冻屏幕,让屏幕恢复正常刷新。和上面的那一句成对使用 End Sub



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有