林屹,林屹講師,林屹聯系方式,林屹培訓師-【中華講師網】
    AI+PPT/Excel/Word/Office/WPS辦公
    46
    鮮花排名
    0
    鮮花數量
    林屹:快速合并同一文件夾下多個工作表
    2016-01-20 3814

    快速合并同一文件夾下多個工作表

    上周我去都江堰某企業上課,其中一位學員問我一個問題:“林老師,如何快速合并同一文件夾下的多個工作表?”


    我原本以為只是一種做表思路,因為相同屬性的數據區域應該放在同一工作表中。所以我問:“為什么要將數據放在多個工作表中而不是一張工作表上呢?”


    這位學員繼續解釋:“這是他們需要下發至各個部門,由他們分別填寫的工作表,在收集回來的時候需要將這些工作表匯總成一個工作薄?而每次我都要將幾十張表進行手工匯總,很麻煩的!”


    的確很麻煩!合并多張工作薄或者工作表是我們日常工作中比較頻繁的操作,而大多數人都是采用手工處理的方式——因為這個看似簡單的操作由于涉及到要打開工作薄文件才能實現引用,所以用EXCEL自帶的“合并計算”或是“數據透視表”都無法進行最簡單的合并多個工作薄操作。


    而我也沒有找到更為簡便的方式解決這個問題,我目前只能用編寫VBA代碼的方式合并同一文件夾下的不同工作薄,如果大家有更為便捷的好方法,請告訴我,讓我學習,共同進步!


    我想到的方法如下:


    第一步:將多個需要合并的工作薄放在同一個文件夾下,并新建一個文件。如下圖,我新建了一個名為“林屹老師-合并工作薄.xlsx”的工作薄。


    第二步,打開這個工作薄,并按快捷鍵Alt+F11進入VBE編輯器頁面,如下圖。


    第三步,我們要在這張工作表“Sheet1”上匯總所有數據,所以現在給它新建一個自定義命令。

    雙擊左側的“Sheet1”,彈出代碼錄入窗口。順便說一下,如果沒有左側的“工程資源管理器”,點擊上方命令欄中的“工程資源管理器”按鈕即可,如下圖:


    接下來,在右邊代碼窗口錄入代碼(微信用戶可復制此代碼到電腦上):

    Sub 合并當前文件夾下所有工作薄中的工作表()

    Dim MyPath, MyName, AWbName

    Dim Wb As Workbook, WbN As String

    Dim G As Long

    Dim Num As Long

    Dim BOX As String

    Application.ScreenUpdating = False

    MyPath = ActiveWorkbook.Path

    MyName = Dir(MyPath & "\" & "*.xlsx")

    AWbName = ActiveWorkbook.Name

    Num = 0

    Do While MyName <> ""

    If MyName <> AWbName Then

    Set Wb = Workbooks.Open(MyPath & "\" & MyName)

    Num = Num + 1

    With Workbooks(1).ActiveSheet

    .Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)

    For G = 1 To Sheets.Count

    Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)

    Next

    WbN = WbN & Chr(13) & Wb.Name

    Wb.Close False

    End With

    End If

    MyName = Dir

    Loop

    Range("B1").Select

    Application.ScreenUpdating = True

    MsgBox "此自動合并命令共合并了 & Num & "個工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"

    End Sub


    然后點擊“運行子過程”按鈕,或按“F5”鍵執行此命令,如下圖:


    第四步,等一會兒(時間因工作薄數量和電腦處理速度不同),彈出對話框,代表合并完畢,如下圖:


    關閉VBE編輯器,回到工作表Sheet1中,可以看到:該文件件下的所以工作薄中的工作表都出現在了工作表Sheet1中,一共有201行數據,如下圖:


    通過上述幾步,就實現了數據合并轉移。如果要將此代碼保存在EXCEL工作薄中,將此EXCEL工作薄另存為“EXCEL啟用宏的工作薄(*.xlsm)”即可,如下圖:


    最后林老師再啰嗦幾句:

    1. 在合并多個工作薄時,最好各個工作薄的格式是一致的,方便匯總后的處理;

    2. 如果是自己的工作表而非他人傳遞給我們的工作表,應該從一開始設計表格時就采用單個工作表的格式進行數據記錄,除非你想自己累死自己;

    3. VBA代碼不是萬能的,本例也只是我想不到更好解決辦法的一個“笨”辦法,如果有更簡單的方法,就不要用VBA——畢竟我們自己設計的VBA經歷的檢驗次數不多,難免存在各類BUG,跟微軟自帶的功能無法相提并論——還是那句話:VBA雖好,可不要貪杯哦!


    全部評論 (0)

    Copyright©2008-2025 版權所有 浙ICP備06026258號-1 浙公網安備 33010802003509號 杭州講師網絡科技有限公司
    講師網 m.transparencyisgood.com 直接對接10000多名優秀講師-省時省力省錢
    講師網常年法律顧問:浙江麥迪律師事務所 梁俊景律師 李小平律師

    主站蜘蛛池模板: 免费一区二区三区| 国产一区二区三区免费观在线| 国产在线一区二区杨幂| 亚洲国产日韩一区高清在线| 亚洲第一区精品日韩在线播放| 无码av免费一区二区三区| 久久精品综合一区二区三区| 国产成人一区二区三区免费视频 | 国产精品亚洲一区二区三区久久 | 国产精品亚洲综合一区| 乱码人妻一区二区三区| 91国偷自产一区二区三区| 亚洲av福利无码无一区二区| 少妇无码AV无码一区| 亚洲爽爽一区二区三区| 一区二区三区91| 日韩一区二区三区在线| 日韩精品国产一区| 夜精品a一区二区三区| 国产麻豆精品一区二区三区| 精品国产AV一区二区三区| 人妻体体内射精一区二区| 亚洲视频在线一区| 中文字幕一区二区精品区| 久久久久人妻精品一区二区三区| 久久91精品国产一区二区| 午夜福利av无码一区二区| 无码人妻精品一区二区三区夜夜嗨 | 日本一区频道在线视频| 69久久精品无码一区二区| 91午夜精品亚洲一区二区三区 | 色老头在线一区二区三区| 亚洲视频在线观看一区| 亚洲丰满熟女一区二区v| 亚洲av永久无码一区二区三区 | 久久99精品免费一区二区| 真实国产乱子伦精品一区二区三区 | 国产激情一区二区三区四区| 日韩AV片无码一区二区不卡| 一区二区三区免费在线视频 | 一区二区三区四区无限乱码|