乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > Excel合并操作,你真的会吗?遇到批量合并相同值单元格该怎么办-excel中合并单元格

Excel合并操作,你真的会吗?遇到批量合并相同值单元格该怎么办-excel中合并单元格

作者:乔山办公网日期:

返回目录:excel表格制作

大家好,Excel合并单元格,是一个让人又爱又恨的东西!强烈建议,尽量不要把单元格合并在一起,因为合并单元格会给以后的数据处理带来很多的麻烦!但合并单元格的功能,在套打或设定版面时,又有其不可替代的作用,因此让人又爱又恨!

Excel合并操作,你真的会吗?遇到批量合并相同值单元格该怎么办


我们在工作中经常会遇到需要合并相同值的单元格,但是对于Excel有大量需要合并单元格的时候,你真确定要一个一个的合并吗?其实你大可不必慌忙,我们今天分享的VBA小代码内容是批量合并相同值的单列单元格。您只需将以下代码复制到VBE窗口中,执行代码即可。

照例举个例子,如下图所示,C列是部门字段,需要将相同的部门单元格修改为合并单元格。

源数据:

Excel合并操作,你真的会吗?遇到批量合并相同值单元格该怎么办


我们看看执行的效果:

Excel合并操作,你真的会吗?遇到批量合并相同值单元格该怎么办


看了上面的动画,是不是感觉非常适合合并大量的单元格。其实上述的代码也是非常简单.

附上Excel VBA代码

Sub MergeRange()

Dim rngData As Range Dim i&, lngCol&, lngFirst, lngLast

On Error Resume Next

Set rngData = Application.InputBox("请选择单列数据列!", Default:=Selection.Address, Type:=8)

Set rngData = Intersect(rngData.Parent.UsedRange, rngData) 'intersect语句避免用户选择整列造成低效运算

lngCol = rngData.Column 'rngData所在列

lngFirst = rngData.Row '用户选择的区域并不是一定从第一行开始,使用此句读取开始行

lngLast = lngFirst + rngData.Rows.Count - 1 'rngData结束行

Application.ScreenUpdating = False '取消屏幕刷新

Application.DisplayAlerts = False '取消消息提醒。

rngData.Parent.Select '激活rngData对象所在的工作表,避免跨工作表操作问题

For i = lngLast To lngFirst + 1 Step -1 '对rngData进行从尾向前遍历

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

Cells(i - 1, lngCol).Resize(2, 1).Merge

End If

Next

rngData.VerticalAlignment = xlCenter '单元格格式上下居中

Application.ScreenUpdating = True

Application.DisplayAlerts = True

MsgBox "合并完成!"End Sub

PS:

1,该段代码只支持单列单元格区域,即按照相同的列进行合并。例如A10:A20,B2:B500等。

2,由于merge合并后的单元格区域只保留右上角首个单元格的值,因此该段代码遍历单元格区域的顺序是从后向前,而不是从前向后,后者是新人常出错之处,注意for-next循环是从Step -1开始的。

3,当然也可以采用从前向后的遍历顺序,先将Rng装入数组,对数组中的数据进行遍历判断是否等同,标记头尾行号,再批量合并单元格。该方法的效率也会高于遍历单元格两两合并的方法。

Excel合并操作,你真的会吗?遇到批量合并相同值单元格该怎么办


其实合并单元格,对我处理数据的时候,造成非常大的麻烦,我们最好还是少合并单元格。

以上就是今天要和大家分享的技巧,希望对大家有所帮助,祝各位一天好心情!

Excel中的每一个函数都有特定的用途,不是他们没有用处,而是你不了解他们或者用不着,建议同学们收藏起来,万一要用着呢!

唯有不断学习,才能不被淘汰!

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网