我需要在VBA中编写一个宏,逐个打开给定目录中的每个文件,并对它们运行一个宏。
到目前为止,我有类似以下的代码:
for i = 1 to number_of_files
open Dir("C:\yourPath\*.*", vbNormal)
call some_macro
close file
next i
"c:\folder\*.xls"
,调用Dir()
函数,开始枚举并获取第一个文件名。之后,反复调用没有任何参数的Dir()
函数,您将获得每个调用的一个*.xls
文件名。Workbooks.Open(full_path)
打开工作簿。这会为您提供一个Workbook
对象,可以对其运行宏。Workbook
对象的.Close()
方法关闭工作簿。 您可以使用.Close(SaveChanges:=True)
保存更改,.Close(SaveChanges:=False)
放弃更改,或省略参数让用户决定。这是使用简单的VBA对象方法来完成它的方式:
Dim fs As FileSearch
Dim i As Integer
Dim wbk As Workbook
Set fs = Application.FileSearch
With fs
.LookIn = ThisWorkbook.Path
.FileName = "*.xls"
For i = 1 to .Execute()
Set wbk = Workbooks.Open(.FoundFiles(i))
''//RUN MACRO HERE
wbk.Close(SaveChanges:=True)
Next i
End With