之前讲过怎样利用OPEN方法从多个Excel中获得数据,今天我们再来看一个类似的例子,这次我们不是从Excel中取数据,而是要对Excel进行一系列的操作,例如我们要对文件夹中的所有Excel的Sheet1的A1输入“战战如疯”,将Sheet2表格删除。之前我们讲过打开工作簿可以用OPEN或GetObject,而遍历用的是Dir方法,今天我们就用Open方法结合Dir遍历来讲下怎么解决批量操作的问题。看下面的代码
Sub test()
Dim mypath, myfile
mypath = ThisWorkbook.Path & "\"
myfile = Dir(mypath & "*.xlsx")
Application.ScreenUpdating = False '关闭屏幕更新
Application.DisplayAlerts = False '关闭提示框
Do While myfile <> ""
If myfile <> ThisWorkbook.Name Then
Workbooks.Open mypath & myfile
With ActiveWorkbook
.Sheets(1).Range("A1") = "战战如疯" '这两行就是你要对该工作簿进行的操作,换成自己的代码即可使用
.Sheets(2).Delete
End With
ActiveWorkbook.Save
ActiveWorkbook.Close
End If
myfile = Dir
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
上面的代码利用Dir对当前文件夹下所有xlsx后缀的文件进行遍历,遍历的解释参见“利用Dir遍历某文件夹下的所有文件”然后利用Open方法打开工作簿,剩下的就是对其进行操作。需要注意的是操作对象要声明是哪个工作簿,ActiveWorkbook指的是刚刚打开的工作簿,英文逗号不要少了。
操作很简单,我就不加示例文件了,自己复制代码,随便建几个空白工作簿试下就可以了。