vba一键生成多个excel (vba一键汇总多个sheet)

Excel中为了表格的简捷,通常相同的内容进行合并,如何批量进行?

>>>> 例:对下面表格的相同姓名进行合并

姓名 数量
张三 76
张三 51
李四 83
李四 34
李四 68
李四 83
王五 66
王五 93
王五 61
小才子 40
小才子 46
小才子 76
小才子 36
小才子 63

本例使用VBA进行运算

step1.表格分析

  • 上述表格姓名下的相同数据已经是堆积在一起的,所以不用进行排序

  • 表格中的数据是不固定的,所以要先找到数据的最后一行,可以使用[A65536].End(xlup).Row

’相当于数据表最后一行向上ctrl+↑

  • 数据从下向上,数据相同则合并,使用merge语句,不相同则跳过,所以使用if语句进行循环

step2.建立VBA代码

建立一个模块,并建立一个合并过程,编写对应的代码,如下 所示:

VBA代码

Sub 合并()

Dim ln%, i%

Application.DisplayAlerts = False

ln = [A65536].End(xlUp).Row

For i = ln To 2 Step -1

If Cells(i, 1) = Cells(i - 1, 1) Then

Range(Cells(i - 1, 1), Cells(i, 1)).Merge

End If

Next

Application.DisplayAlerts = True

End Sub

将文件另存为xlsm格式,要不然重新打开这段代码就消失了!

step3.运行结果

在【开始】-【开发工具】-【宏】

选择宏名为合并,并运行,直接就合并了!

vba一键批量生成标签,vba一键汇总多个sheet

如果你的数据源不是在A列,在其他列,这段代码就没用了。

那么如何使用这段代码在任意列都能用呢?

各位朋友可以思考下,有好的想法留言发送吧!

===========================

同步原创微信公众号:自学成才

想每天收到这样的文章

赶紧搜索关注吧!