最近常常在使用 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)
    Next
End Sub
注意事項
  1. 所有的工作表(Worksheets) 的資料都必需由欄 A1 開始
  2. 所有的工作表(Worksheets) 的資料都必需是同樣的結構
  3. 該段 VB 的巨集程式碼,只適用單一個活頁簿(WorkBook)
Share.

About Author

48 篇迴響

  1. Hi Jason 翰 ,

    先謝謝你這個程式 , 想請問一下 , 如果想連A1欄一起覆製 , 程式是否哪邊修改一下就可以了呢 ?

    • Hi Amy,
      將下列這句語法標註掉或刪掉即可
      Selection.Offset(1, 0).Resize(Selection.Rows.Count – 1).Select

  2. Hi Jason 翰 ,

    先謝謝你這個程式 , 想請問一下 , 如果想連A1欄一起覆製 , 程式是否哪邊修改一下就可以了呢 ?

    • Hi 苡佑,
      將下列這句語法標註掉或刪掉即可
      Selection.Offset(1, 0).Resize(Selection.Rows.Count – 1).Select

  3. 成功了,但是我還需要當其中的一個sheet有更新時合併的檔案也跟著更新~
    請問大大有辦法嗎?

  4. Penny Windows other version Google Chrome 52.0.2743.116 on

    您好, 想請問合併後combined工作表裡只顯示最後一個工作表的內容, 其他都沒跑出來, 是為什麼呢? 先謝謝解答了.

    • Hi Penny,
      可以請您把工作表寄給蘋果米瞧瞧嗎?
      聯絡信箱: service [at]appleme.club (請將 [at]替換成 @)

  5. 您好! 謝謝您的貢獻與分享,但我輸入後,Combined工作表只出現每個工作表的標題,無內容,請問該如何處理? 謝謝!

    • 米雪,
      您提供的資訊有點少, 蘋果米無法判斷耶
      可否提供您說的工作表以助蘋果米了解您的問題

    • Hi, 你好~
      我本身有10個工作表,希望集合在同一工作表後,進行樞紐分析, 我照著文中提到的方式進行,最後得到的解果是在COMBINED的工作表內,只有出現10個工作表的表頭, A,B,C,D,E2後的資料(內容)都沒有出現, 例: 在 A1(名稱), B1(敘述), C1(日期), D1(數量), E1(價格), F1(狀態)
      謝謝!

    • Hi 米雪,
      試著把你的檔案找個雲端空間儲存
      然後蘋果米就能去下回來看看
      這樣才能協助解決你的問題

    • 您好,在https://appleme.club/about/advertise/網址輸入後,出現以下資訊Failed to send your message. Please try later or contact the administrator by another method.

    • Hi 米雪,
      最近蘋果米的系統有點問題,您可以先用蘋果米的FB私訊功能提供檔案喔

  6. Andrew Windows other version Unknow on

    你好, 這真的蠻實用的, 我有幾個問題想要請教一下
    1. 如果我的 sheets 不是全都連在一起的,中間可能有多幾個不等的 sheets 話我解決這個問題呢?
    2. 如果我想保留最上層的名稱欄位,再全部合併在一起, 這樣有辦法嗎?
    3. 合併的數值中有公式, 可以貼成文字嗎? 因為試過了公式的執會跑掉
    感謝你

    • Hi Andrew,
      您的問題蘋果米到現在才看到
      蘋果米會試著了解你的問題
      但可否提供範例檔給蘋果米呢?

  7. 若所有的工作表(Worksheets) 的資料都由欄 A4 開始~那該如何修改?

  8. Sibyl Mac OS X Safari 9.0 on

    Hi Jason翰,
    不好意思!在請問一下,如果我excel裡面有一個sheet(upload file)不要被合併,其他的都要合併,並且指定合併到sheet1,應該要怎麼改?
    謝謝

歡迎您發表迴響唷!