how do i open ALL the excel files one by one and run a macro
I need to write a macro in VBA that will open every file in a given directory one by one and run a macro on them.
so far i have something like
for i = 1 to number_of_files
open Dir("C:\yourPath\*.*", vbNormal)开发者_开发问答
call some_macro
close file
next i
By calling the Dir()
function with an appropriate filter, such as "c:\folder\*.xls"
, you start enumeration and get the first file name.
After that, repeatedly calling the Dir()
function without any parameters, you will get all *.xls
file names, one for each call.
You open a workbook by calling Workbooks.Open(full_path)
. This gives you a Workbook
object, against which you can run a macro.
The .Close()
method of this Workbook
object closes the workbook. You can use .Close(SaveChanges:=True)
to save changes, .Close(SaveChanges:=False)
to discard changes, or omit the parameter to have the user decide.
Here's the easy VBA object way to do it:
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
精彩评论