昨天还有个粉丝私信我,说月底要汇总十几张部门报表,问我excel文件怎么合并到一起。说实话,我看到这条消息的时候,脑子里立马就想起自己头几年干过的傻事儿——一张张打开,Ctrl+C、Ctrl+V,复制粘贴到怀疑人生。关键这种活儿每个月都得干一回,干一次烦一次,还特别容易把数据贴错行。

今天干脆把这几个方法给捋一遍。excel文件怎么合并到一起,我试下来就三种路子比较靠谱:用批量合并工具、用WPS自带功能、用VBA宏代码。

百家号头图先说我最常用、也最省心的那个。

用汇帮PDF转换器,全程点几下就行

我用得最多的是汇帮PDF转换器里的excel合并功能。这软件名字里带“PDF”,但其实excel文件操作这块儿也做得挺细的,合并、拆分、转格式都有。操作不复杂,咱一步一步来。

第一步,双击打开汇帮PDF转换器,首页那一排图标里找到【excel文件操作】,点进去。

第一步,双击打开【汇帮PDF转换器】,在打开界面选择【excel文件操作】功能点击进去,.png进来之后是新的操作界面,这时候注意看左侧的菜单栏,里面有个【excel合并】的选项,点它。对,就是这个,别点成拆分或者别的了。

第二步,再打开界面的左侧选择【excel合并】.png接着就是添加文件了。左上角有个【添加文件】按钮,点它就能弹出来文件选择框,选完一批再加一批也行。要是嫌麻烦,直接把桌面上的excel文件拖进软件窗口里,它也认。我第一次用的时候就拖着试了试,方便得很。

第三步,通过左上角的【添加文件】按钮或者直接拖拽的方式,把需要合并的excel文件添加到软件中.png文件都加进来了,先别急着点执行。看界面上有个输出目录的设置,这个就是问你合并好的文件要放哪儿。一定自己选一个好找的文件夹,别跟我似的,第一次用没注意默认路径,合并完我还得满电脑找文件在哪儿,真是服了。

第四步,给合并好的excel文件找一个储存位置.png接下来就是收尾了,直接点界面右下角的【开始执行】按钮,剩下的交给软件自动处理就行。合并完了之后,它会自动把生成好的文件弹出来,你当场就能看到结果,不用东翻西找。

第五步,最后直接点击【开始执行】按钮就可以了,剩下的软件会自动合并到你选好的储存位置.png合并成功后,软件会自动弹出已经合并好的excel文件.png这个方法的优点就是省心,全程点几下鼠标就完事儿。我之前一次性合并三十多个工作表,也就喝口水的时间。看到合并完的文件自动弹出的那一刻,心里那叫一个踏实。不过要是你不想装新软件,那可以看看下面这个法子。

WPS自带合并表格,鼠标点两下搞定

WPS其实自带合并表格功能,很多老用户都不知道。操作比你想的简单多了。打开WPS表格,在底部找到【工作表标签】,就是那些“Sheet1”、“Sheet2”的小标签页,按住Shift键把它们全选上。

图片选好之后右击鼠标,弹出的菜单里选【合并工作表】,再选【合并成一个工作表】。这时候会弹出来一个合并向导的小窗口,按提示点击下一步,等个几秒钟,所有工作表就合并到一张表里了。

image.png这个方法是真的方便,而且WPS个人版也免费,适合大多日常办公场景。但要注意一点,它合并的是同一个文件里的多个工作表,不是多个独立的excel文件。要是你得把好几个不同的excel文件合并成一个,那还是得用前面说的汇帮工具,或者试试下面这个VBA的办法。

VBA宏自动化合并,一劳永逸

要是你手头要合并的表格结构基本一样,而且每周每月都要固定合并一次,那学会用VBA是真的香。我第一次用VBA跑通合并的时候,眼看着几十张表唰地一下合到一个新表里,嘴都合不拢。设置步骤大概分三步,稍微需要一点耐心。

第一步,先把开发工具选项卡调出来。在Excel里打开“文件”菜单,进“选项”,在“自定义功能区”里勾上“开发工具”,确定之后顶栏就能看到了。

第二步,进“开发工具”,点那个“Visual Basic”按钮,在打开的界面里右键“插入”一个模块,然后把下面这段代码贴进去:

Sub MergeAll()
    Dim wb As Workbook, ws As Worksheet
    Dim newWb As Workbook, newWs As Worksheet
    Dim basePath As String, currentFile As String
    Dim endRow As Long, targetRow As Long

    Set newWb = Workbooks.Add
    Set newWs = newWb.Sheets(1)
    newWs.Name = "全部数据汇总"

    basePath = "C:\表格文件夹\"   '改成你自己的路径,末尾一定要带反斜杠
    currentFile = Dir(basePath & "*.xls*")

    Do While currentFile <> ""
        If currentFile <> newWb.Name Then
            Set wb = Workbooks.Open(basePath & currentFile)
            For Each ws In wb.Sheets
                endRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
                If endRow > 1 Then
                    targetRow = newWs.Cells(newWs.Rows.Count, 1).End(xlUp).Row + 1
                    ws.UsedRange.Offset(1, 0).Copy newWs.Cells(targetRow, 1)
                End If
            Next ws
            wb.Close False
        End If
        currentFile = Dir
    Loop

    Set wb = Workbooks.Open(basePath & Dir(basePath & "*.xls*"))
    wb.Sheets(1).UsedRange.Rows(1).Copy newWs.Cells(1, 1)
    wb.Close False
    
    MsgBox "合并完成,看看新工作簿吧!"
End Sub

第三步,把代码里 basePath 那行后面的路径,改成你放excel文件的文件夹路径,然后按F5运行宏。代码跑完之后,新工作簿里就会出现一个叫“全部数据汇总”的工作表,里面是几十个文件的所有数据。

image.pngVBA厉害的地方就在于,写一次以后每次都能用,双击宏直接跑。不过前提是你得懂一点代码的逻辑,不然报错了容易懵。我当时第一次调试这个代码就花了不少时间,后来才发现是路径末尾少打了个斜杠,真是哭笑不得。

说到底,excel文件怎么合并到一起,就这三条路:批量合并