【发布时间】:2017-05-11 18:40:13
【问题描述】:
我有一个文件夹,其中有许多子文件夹,其中包含 1000 多个 Excel 文件。
我想对所有这些文件运行特定的宏(更改工作簿)。
已经看到下面的答案了。
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
有两个问题:
1. 这会非常慢。有没有更快的方法?
2. 这只会在匹配文件夹中的文件上运行,而不是在所有子文件夹中的文件上运行。有没有办法对子文件夹中的文件执行此操作?
【问题讨论】:
-
尝试编写 VBScript
-
@ShaiRado 你说 VBScript 更好是因为它更快?
-
是的,但不仅如此,它更适合涉及多个文件夹和文件的任务。
-
@ShaiRado 好吧,我对 VBscript 不太熟悉.. 做起来很复杂吗?