【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