将excel文件列表合并到一个新的Excel工作簿中

时间:2017-06-21 11:51:40

标签: excel excel-vba vba

我需要创建一个宏来合并目录中的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

2 个答案:

答案 0 :(得分:1)

代码就是这样。

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 = 0 To 1
        Filename = Dir(FolderPath & "\" & ListFilenames(i))
        Do While Filename <> ""
            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()
        Loop
    Next i
    Application.ScreenUpdating = True
End Sub

答案 1 :(得分:0)

使用下面链接中的AddIn。

https://www.rondebruin.nl/win/addins/rdbmerge.htm

这将做你想要的。