將 Excel 活頁簿中的多個工作表合併為一個

Google+ Pinterest LinkedIn Tumblr +

最近常常在使用 EXCEL,而且常常會需要將多個工作表(Worksheets)裡的資料合併在一起,如下圖所示

但如果用人工來處理,就需要一直重覆著 Crtl + A(全選)、Crtl + C(複製)、Crtl + V(貼上) 的標準動作 ( ´•̥̥̥ω•̥̥̥` )

excal_all_in_one

為瞭解決上述的困擾,所以就弄了一段 VBA 的程式碼來替,來處理這讓麻煩的人工處理作業過程

跟蘋果米有著一樣困擾的冰友們,可以跟著蘋果米列在下面的步驟一起來操作喔 ლ(^o^ლ)

操作步驟

  1. 首先按下快鍵盤快速鍵 ALT + F11,接著會開啟 Microsoft Visual Basic for Applications 視窗
  2. 接著點擊上方選單的 插入(I) > 模組(M),接著把下方的程式碼貼入程式碼的視窗中
  3. 再來按下鍵盤上的 F5 按鍵,會跳出一個巨集儲存的視窗,最後按下 ⌈執行⌋ 按鍵,就會將所有的資料表(Worksheets) 都合併到一個名稱叫做 ⌈Combined⌋ 的新工作表了喔
Sub Combine()
    Dim J As Integer
    
    On Error Resume Next
    Sheets(1).Select
    Worksheets.Add
    Sheets(1).Name = "Combined"
    Sheets(2).Activate
    Range("A1").EntireRow.Select
    Selection.Copy Destination:=Sheets(1).Range("A1")
    
    For J = 2 To Sheets.Count
        Sheets(J).Activate
        Range("A1").Select
        Selection.CurrentRegion.Select
        Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
        Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
        //只需要複製欄位值,請註解掉上一行程式碼,並將下列二行的註解拿掉
        //Selection.Copy
        //Sheets(1).Range("A65536").End(xlUp)(2).PasteSpecial xlPasteValues
    Next
End Sub
注意事項

  1. 所有的工作表(Worksheets) 的資料都必需由欄 A1 開始
  2. 所有的工作表(Worksheets) 的資料都必需是同樣的結構
  3. 該段 VB 的巨集程式碼,只適用單一個活頁簿(WorkBook)
Share.

60 篇迴響

  1. 蜂蜜 Windows other version Google Chrome 56.0.2924.87 on

    請問大大

    合併完後,別的表格插入內容 合併完的不會更著動 要如何改 ?

    如何讓其他表格同步?

  2. memo Windows other version Google Chrome 56.0.2924.87 on

    您好,
    因為對vba的知識尚淺,就一行一行慢慢去理解..
    覺得會程式的人 真不簡單

    目前有些困惑的地方是上列程式碼中的
    第8行為何是.activate而不是.select呢?
    第17行,為何不是使用End(xldown)而是xlup呢? Een(xlUp)後的(2)又是什麼意思呢?

    能解答問題的話 我會很感激的QwQ/

    • 1. 第8行為何是.activate而不是.select呢?
      ANS : 因為要將第二個worksheet設為作用中

      2. 第17行,為何不是使用End(xldown)而是xlup呢?
      ANS : 因為我是從第65536行往上找

      3. Endn(xlUp)後的(2)又是什麼意思呢?
      ANS : 因為不複製首行(所以做了位移)

  3. NANA Windows other version Google Chrome 56.0.2924.87 on

    大大,還想再請教您一個問題,如果不要每次執行都是新增合併的工作表而是更新,要如何修改呢

  4. NANA Windows other version Google Chrome 56.0.2924.87 on

    您好,如果我只想要合併值,不要帶公式,請問要如何修改呢~~謝謝

    • Hi NANA,
      只要複製欄位的值而不要公式的作法
      已經更新在文章的程式碼中了
      請自行取用喔

  5. Daniel Mac OS X Safari 10.0 on

    請問我只有要合併前6個工作表,要修改哪一部份的程式呢?謝謝

歡迎您發表迴響唷!