多工作表sheet合并到一张表(工作小记将多个sheet表合并到一张里)
多工作表sheet合并到一张表(工作小记将多个sheet表合并到一张里)代码详解:运行宏在右边的空白区域,输入下面的代码:Sub main() For Each sh In Sheets If sh.Name <> "总表" Then i = sh.Range("D65536").End(3).Row k = Range("A65536").End(3).Row sh.Range("A2:D" & i).Copy Range("A" & k 1) End If Next End Sub 输入代码之后选择工具,宏,运行。稍等一会儿即汇总完毕。
今天拿到 一些表格,每张表里含有多张sheet,但格式都是一样的,需要将每张sheet汇总起来放到一张表里,这里将方法说一下,也方便自己以后再用。
新建一个总表,准备开始汇总。
按下Alt F11,打开VBA,左键双击左边的的名为”总表“的工作表,确保后续的代码是复制到这个工作表中。
选中总表双击
在右边的空白区域,输入下面的代码:
Sub main() For Each sh In Sheets If sh.Name <> "总表" Then i = sh.Range("D65536").End(3).Row k = Range("A65536").End(3).Row sh.Range("A2:D" & i).Copy Range("A" & k 1) End If Next End Sub
输入代码
之后选择工具,宏,运行。稍等一会儿即汇总完毕。
运行宏
代码详解:
- Sub main()——main是宏名,可以修改。
- For Each sh In Sheets——遍历所有的工作表,不需要汇总的请删除
- If sh.Name <> "总表" Then——这里是判断工作表的名字是不是”总表“,如果是总表,就不汇总数据
- i = sh.Range("B65536").End(3).Row——获得行号,在实际的使用过程中,一定要选择一个最后一行有数据的列,否则不能获得最大行号
- k = Range("A65536").End(3).Row——这里是获得总表的最大行号,以便复制粘贴,无需更改。
- sh.Range("A2:D" & i).Copy Range("A" & k 1)——“A2:D”&i是要复制的区域,可根据需要进行调整
- Range("A" & k 1)——这里是从总表的A列开始粘贴,假如是从D列开始,那么这里的A改为D即可
- End If Next End Sub——结束,无需更改
简单介绍完了,有需要的可以试试。