vba批量将一个文件夹内的多个同格式的工作薄中的数据合并

批量合并数据,条件:①工作薄在一个文件夹内;②需合并的数据字段一样;③需合并的数据所在的区域起始行和列一致。

宽限条件:工作薄名可以不规则

Sub 文件合并()
    Dim Num As Long     'dim为定义参数
    Dim insert_row As Long
    Dim MyPath As String
    Dim MyName As String
    Dim Wb As Workbook   'dim被合并文件名
        
    Application.DisplayAlerts = False    '报警窗口不弹出
    
    insert_row = 1
    MyPath = "E:/数据1"
    MyName = Dir(MyPath & "/" & "*.xls")   'dir为依次寻找指定路径中的xls文件
    Num = 0
    
    Do While MyName <> ""
        If MyName <> ActiveWorkbook.Name Then
            Set Wb = Workbooks.Open(MyPath & "/" & MyName)   '打开符合要求的文件
            Num = Num + 1
            With Sheets("成交明细").Activate
                If Num = 1 Then
                    Range("A10", "L" & (Cells.SpecialCells(xlCellTypeLastCell).Row - 1)).Select   'Cells.SpecialCells(xlCellTypeLastCell).Row指包含字符的最后一个单元格所在的行
                Else
                    Range("A11", "L" & (Cells.SpecialCells(xlCellTypeLastCell).Row - 1)).Select
                End If
            End With
            
        Selection.Copy
        ActiveWindow.Close
        Range("A" & insert_row).Select
        ActiveSheet.Paste
        insert_row = Range("A" & Rows.Count).End(xlUp).Row + 1   'End(xlUp).Row指数据区域最后一行行号
        
        End If
        MyName = Dir
    Loop
    
End Sub
程序放置:Alt+F11开启VBA工程页,在所在工作薄的project下插入模块,在模块中存入以上代码。

你可能感兴趣的:(VBA)