excel的多表合并
来源:互联网 发布:举牌图制作软件 编辑:程序博客网 时间:2024/06/05 23:06
工作需要百度到的,很不错,进行记录。
Sub main()
For Each sh In SheetsIf sh.Name <> "总表" Then
i = sh.Range("A65536").End(3).Row
k = Range("A65536").End(3).Row
sh.Range("A2:D" & i).Copy Range("A" & k + 1)
End If
Next
End Sub
代码详解:
1.Sub main()——其中Sub 跟括号是固定的,main是宏名,可以随便更改(其实完全没有必要多此一举,这里可以不做任何修改)
2.For Each sh In Sheets——这是遍历全部的工作表,这里就要注意,如果你的工作表中包含一些,不需要汇总数据的工作表,那么就需要将源数据表备份一份,然后将不需要汇总数据的工作表都删除掉,只剩下总表以及需要汇总数据的工作表(当然,还有其他办法,这里只讲解最简单地做法)
3.If sh.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——这些是结束判断、继续循环和程序结束,都不需要更改。
- excel的多表合并
- Excel合并多个单元格的内容。
- Excel单元格的合并
- Excel单元格的合并
- excel的单元格合并
- 批处理之合并多个Excel表
- VBA合并多个excel表
- EXCEL合并多列
- EXCEL合并表
- excel合并含合并同类项的导出
- Excel表快速合并,多个Excel表合并到一个里面
- Excel的二次开发实例:合并Excel文件
- VBA合并EXCEL的单元格
- 合并Excel单元格的文本
- vba的宏和模块,关于excel表的合并
- excel文件的多个sheet表合并成一个csv文件并导入数据库
- C#合并多个结构一样的Excel
- C#合并多个结构一样的Excel
- 爱你,从平平淡淡的那一天开始
- mysql增、删、改字段语句
- pycharm 3.0 序列号
- 一篇文章看懂Android学习最佳路线
- vue2.0逻辑思维选项卡。
- excel的多表合并
- 限制Input输入框输入最小最大字符数
- Java实现文件的预览
- Maven Cobertura Plugin集成
- tomcat及其jdk在linux下安装文档
- 冒泡排序(java基础算法)
- C# WinForm窗体及其控件自适应各种屏幕分辨率
- C语言基础 3 二进制 操作符
- ps -ef |grep 输出的具体含义