Skip to main content
 Web开发网 » office教程 » excel教程

实战EXCEL合并单元格

2021年11月23日7150百度已收录

有这样一个表格,想达到图2那种样子。

实战EXCEL合并单元格  excel怎么合并单元格 第1张

原表

实战EXCEL合并单元格  excel怎么合并单元格 第2张

想实现的效果

三种方法:1是直接选中,然后点击“合并后居中”按钮;2是录制一段宏,然后挨个运行;3是编写一段VBA代码实现。

数据量一大,还是第三种方法省时省力。好了开始。

实战EXCEL合并单元格  excel怎么合并单元格 第3张

点击“开发工具”里的“Visual Basic"按钮

实战EXCEL合并单元格  excel怎么合并单元格 第4张

插入一个模块

然后敲入下面的代码

Sub 合并单元格() Application.DisplayAlerts = False '关闭系统提醒 For i = 16 To 2 Step -1 If Cells(i, 1) = Cells(i - 1, 1) Then Range(Cells(i - 1, 1), Cells(i, 1)).Merge Next i Application.DisplayAlerts = True '记得在程序结尾打开系统提醒End Sub然后,关闭编辑器,点击开发工具里的”宏“。

实战EXCEL合并单元格  excel怎么合并单元格 第5张

选择列表里的”合并单元格“,点击右边的”执行“

是不是变成我们想要的效果了?

知识点:range(),表示单元格区域。可以是一片,也可以是一个。如:

range("A1") ‘表示单元格A1

range("A1:B10") ’表示区域A1:B10

range("A1:A3","C1:C3") '表示A1:C3

range("A5:E5 B1:B12") '表示A5:E5和B1:B12的交叉部分单元格

cells(),表示一个单元格。 就一个单元格。如:

cells(8,2) cells(8,"B") cells(2)

那么问题又来了,假如现在行数增加了,需要合并的也不一定是第一列?如何让程序有通用性?

设置一些变量,来代替经常改变的系数,如行,列。改变后如下:

Sub 合并单元格() Application.DisplayAlerts = False lie = "A" '设置第几列需要合并单元格,填写列号或列的子母 r = Cells(65535, lie).End(3).Row For i = r To 2 Step -1 If Cells(i, lie) = Cells(i - 1, lie) Then Range(Cells(i - 1, lie), Cells(i, lie)).Merge Next i Application.DisplayAlerts = TrueEnd Sub好了,这样的话,如果实际数据改了,我们只需改变一下斜体部分就可以合并单元格了。

评论列表暂无评论
发表评论
微信