[导读]:今天爸爸让我帮忙处理下 Excel 文档,本来以为小事一桩,结果才发现没那么容易。他是需要把几十个 Excel 报表合并成三个,本来也没什么,一个个复制好了,但是发现最多的那...
今天爸爸让我帮忙处理下 Excel 文档,本来以为小事一桩,结果才发现没那么容易。他是需要把几十个 Excel 报表合并成三个,本来也没什么,一个个复制好了,但是发现最多的那个需要合并37个文件,天呐,这样手工操作太累了,而且很容易出错。因为它不是简单的拼接,合并后还需要进一步处理。有没有办法可以一次性自动合并所有的文件?
废话不多说,直接分享方法吧,就是采用 VBA 的方法,屡试不爽!把需要合并成一个文件一张表的所有文件复制到一个目录下,然后在这个目录里新建一个 Excel 文件,打开后右击底部的 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 & "\" & "*.xls") 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("a65536").end(xlup).row + 2, 1) = left(myname, len(myname) - 4) for g = 1 to sheets.count wb.sheets(g).usedrange.copy .cells(.range("a65536").end(xlup).row + 1, 1) next wbn = wbn & chr(13) & wb.name wb.close false end with end if myname = dir loop range("a1").select application.screenupdating = true msgbox "共合并了" & num & "个工作薄下的全部工作表。如下:" & chr(13) & wbn, vbinformation, "提示" end sub
点击上方的绿色小图标,运行此 VB 代码,根据合并的数量稍等片刻,如下图合并成功:
这样一来,省事太多了!我发现被合并的 Excel 如果有多张表,都会被合并进来,并按顺利排列下去。
合并后还需要进一步处理,比如去除空格,选中其中一列,点击右上角的“查找和选择”,定位条件,选择“空值”,如下图:
选中后右击删除行即可。可能还需要去除其它的杂项,选中其中一列,点击右上角的“排序和筛选”,筛选出来后删除行。
本文来自投稿,不代表微盟圈立场,如若转载,请注明出处:https://www.vm7.com/a/jc/7898.html