【发布时间】:2017-06-23 22:22:42
【问题描述】:
我需要创建一个宏来合并目录中的 excel 文件列表。 该文件夹包含我不想选择的其他文件。所以,我需要指定文件列表(例如,选择所有名称包含“02.08.xlsx”的文件)。
这是我第一次使用 VBA,所以请考虑到这一点。 我已经尝试了一些方法,但我认为我总是在文件选择方面遇到问题。
这是我迄今为止尝试过的,但没有奏效:
Sub MergeWorkbooks()
Dim FolderPath As String
Dim Filename As String
Dim ListFilenames As Variant
Dim Sheet As Worksheet
Application.ScreenUpdating = False
FolderPath = CurDir()
ListFilenames = Array("*02.08.02.01*.xlsx", "*02.08.13.01*.xlsx")
For i = 1 To 2
Filename = Dir(FolderPath & ListFilenames(i))
Workbooks.Open Filename:=FolderPath & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Next i
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
看看这个 Excel VBA 代码:extendoffice.com/documents/excel/… 有了它,您可以列出路径上的所有文件或文件夹,并且您可以使用该数据过滤任何您想要的
-
For i = 1 To 2 is to be changed For i = 0 To 1
-
@Dy.Lee 谢谢。还是不行。我在定义文件名后放置了一个检查,但它始终为空白。当我定义我猜的文件名时出了点问题。
-
您错过了文件路径分隔符。 Workbooks.Open Filename:=FolderPath & "\" Filename, ReadOnly:=True
-
@Dy.Lee 这就是问题所在!谢谢!