使用VBA合并多個Excel活頁簿

來源:互聯網
上載者:User

      有許多實現Excel活頁簿合并的方法,在《將多個活頁簿中的資料合併到一個活頁簿》中介紹過合并活頁簿的樣本。下面再列舉幾個樣本,供有興趣的朋友參考。
     

      例如,需要將多個Excel活頁簿中的工作表合并到一個活頁簿。這裡假設需要合并的活頁簿在“D:/樣本/資料記錄/”檔案夾中,含有兩個活頁簿test1.xls、test2.xls(當然,可以不限於兩個),在test1.xls活頁簿中含有三張工作表,在test2.xls活頁簿中含有兩張工作表,現在使用一段VBA代碼合并這兩個活頁簿到一個新活頁簿中,合并到新活頁簿中的工作表分別以原活頁簿名加索引值命名。代碼如下:

Sub CombineWorkbooks()
    Dim strFileName As String
    Dim wb As Workbook
    Dim ws As Object
 
    '包含活頁簿的檔案夾,可根據實際修改
    Const strFileDir As String = "D:/樣本/資料記錄/"
 
    Application.ScreenUpdating = False
 
    Set wb = Workbooks.Add(xlWorksheet)
    strFileName = Dir(strFileDir & "*.xls*")
 
    Do While strFileName <> vbNullString
        Dim wbOrig As Workbook
        Set wbOrig = Workbooks.Open(Filename:=strFileDir & strFileName, ReadOnly:=True)
        strFileName = Left(Left(strFileName, Len(strFileName) - 4), 29)
 
        For Each ws In wbOrig.Sheets
            ws.Copy After:=wb.Sheets(wb.Sheets.Count)
            If wbOrig.Sheets.Count > 1 Then
                wb.Sheets(wb.Sheets.Count).Name = strFileName & ws.Index
            Else
                wb.Sheets(wb.Sheets.Count).Name = strFileName
            End If
        Next
 
        wbOrig.Close SaveChanges:=False
 
        strFileName = Dir
 
    Loop
 
    Application.DisplayAlerts = False
    wb.Sheets(1).Delete
    Application.DisplayAlerts = True
 
    Application.ScreenUpdating = True
 
    Set wb = Nothing
 
End Sub

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.