私は多くのサブフォルダを持っているフォルダを持っており、その中に1000を超えるExcelファイルがあります。 wb)すべての1000のファイルとサブフォルダに? は既に問題(VBA上)である を次のように回答していますが、その回答には2つの問題があります。 1.このソリューションは非常に遅くなります。おそらく... 2.このマクロは、一致するフォルダのファイルでのみ実行され、すべてのサブフォルダ内のファイルには実行されません。 サブフォルダ内のファイルに対しても同様の方法がありますか?excelマクロをフォルダ内のすべてのディレクトリで再帰的に実行する
VBA:
Sub ProcessFiles()
Dim Filename, Pathname As String
Dim wb As Workbook
Pathname = ActiveWorkbook.Path & "\C:\...\EXCL\"
Filename = Dir(Pathname & "*.xlsx")
Do While Filename <> ""
Set wb = Workbooks.Open(Pathname & Filename)
DoWork wb
wb.Close SaveChanges:=True
Filename = Dir()
Loop
End Sub
Sub DoWork(wb As Workbook)
With wb
'Do your work here
......
End With
End Sub
VBScript –
@ShaiRadoを書き込もうとすると、VBScriptはより高速であるため、より優れていると言いますか? – David
はい、それだけでなく、複数のフォルダやファイルを含むタスクに適しています。 –