多个sheet合并为一个sheet_多个sheet合并成一个sheet
2023-02-20 22:57:40   互联网


(资料图片)

1、新建一个总表,准备汇总Alt+F11,VBA快捷键,在弹出的新界面中,左键双击坐标的名为”总表“的工作表,使后续的代码是复制到这个工作表中。

2、在右边的空白区域,复制下面的代码:Sub main()For Each sh In SheetsIf ***.Name <>"总表"Theni = sh.Range("D65536").End(3).Rowk = Range("A65536").End(3).Rowsh.Range("A2:D"& i).Copy Range("A"& k + 1)End IfNextEnd Sub代码详解:1.Sub main()——其中Sub 跟括号是固定的,main是宏名,可以随便更改(其实完全没有必要多此一举,这里可以不做任何修改)2.For Each sh In Sheets——这是遍历全部的工作表,这里就要注意,如果你的工作表中包含一些,不需要汇总数据的工作表,那么就需要将源数据表备份一份,然后将不需要汇总数据的工作表都删除掉,只剩下总表以及需要汇总数据的工作表(当然,还有其他办法,这里只讲解最简单地做法)3.If ***.Name <>"总表"Then——这里是判断工作表的名字是不是”总表“,如果是总表,就不汇总数据,本例中总表的名字就是”总表“,如果你的工作表中,总表名字是其他的,就将这里的”总表“改为你的工作总表明细;4.i = sh.Range("D65536").End(3).Row——这里要注意了"D65536",是为了获得最后一个不为空的行的行号,这里用了D列,因为本例中的D列是有数据的,在实际的使用过程中,一定要选择一个最后一行有数据的列,否则不能获得最大行号(假如只有2列,那么这里的D可以改为B或者A)5.k = Range("A65536").End(3).Row——这里是获得总表的最大行号,以便复制的数据,能够依次往下粘贴;(这里的A65536跟上面提到的是一个道理,总表中的A列最后一行不是空的)6.sh.Range("A2:D"& i).Copy Range("A"& k + 1)——这里要注意“A2:D”&i是要复制的区域,因为本例中只有A-D列,而且数据是从第2行开始的,所以这里是A2:D,那假如是从E列第10行开始,到Z列结束的区域,就应该改为E10:Z;Range("A"& k + 1)——这里是从总表的A列开始粘贴,假如是从D列开始,那么这里的A改为D即可7.End If Next End Sub——这些是结束判断、继续循环和程序结束,都不需要更改。

3、保存执行代码。

本文就为大家分享到这里,希望小伙伴们会喜欢。

关键词: 不能获得 就为大家 左键双击 这个工作

上一篇:全球热推荐:冰箱能横放吗_冰箱能横着放吗
下一篇:最后一页

【英国首相:解决“脱欧”后北爱问题需和欧盟保持磋商】英国首相苏纳克表示,正在就解决“北爱尔兰议定书”与北爱尔兰的各政党进行积极对话,共用寻找解决“北爱尔兰议定书”中的实际问题和解决方案。苏纳克透露,如何解决英国“脱欧”带来的北爱问题需要和欧盟保持进一步磋商。英国2021年1月正式脱离欧盟,“北爱尔兰议定书”是“脱欧”协议的一部分。根据协议,北爱尔兰地区留在欧洲单一市场与欧盟关税同盟内。去年7月22日,英国议会下院决定修改“北爱尔兰议定书”部分规则内容,当天,欧盟委员会宣布就英国政府违反“北爱尔兰议定书”的

【英国首相:解决“脱欧”后北爱问题需和欧盟保持磋商】英国首相苏纳克表示,正在就解决“北爱尔兰议定书”与北爱尔兰的各政党进

2023-02-18