【vba】合并工作簿:自动将多个工作表中的内容合并到一个工作簿


代码逻辑如下: 

Sub 合并工作薄()
    On Error Resume Next
    Dim SummarySheet As Worksheet '汇总表
    Dim SelectedFiles() As Variant  '选择的文件集合
    Dim Nrow As Long
    Dim FileName As String
    Dim NFile As Long
    Dim WorkBk As Workbook
    Dim SourceRange As Range
    Dim DestRange As Range
    
    
    Set SummarySheet = ThisWorkbook.Worksheets(1)
    
    SelectedFiles = Application.GetOpenFilename(filefilter:="Excel 文件(*.xl*),*.xl*", MultiSelect:=True)
    
    Nrow = 1
    
    For NFile = LBound(SelectedFiles) To UBound(SelectedFiles)
        
        FileName = SelectedFiles(NFile)
        
        Set WorkBk = Workbooks.Open(FileName)
    
        Set SourceRange = WorkBk.Worksheets(1).UsedRange
        Set DestRange = SummarySheet.Range("A" & Nrow)
        Set DestRange = DestRange.Resize(SourceRange.Rows.Count, SourceRange.Columns.Count)
        
        DestRange.Value = SourceRange.Value
        Nrow = Nrow + DestRange.Rows.Count
        
        WorkBk.Close savechanges:=False
    
    Next
        
        SummarySheet.Columns.AutoFit
      
        
End Sub

说明:这里是分别复制给子工作簿/工作表的值,而没有复制格式,如果需要特殊格式的,可以现在汇总表中进行格式设置,再执行合并动作。 

运行宏代码,选择工作表:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM