Excel批量合并相同内容单元格,并实现逆向操作,批量取消合并单元格恢复原样!

Excel情报局
Excel职场联盟
生产挖掘分享Excel基础技能
Excel爱好者大本营
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地
SUPER EXCEL MAN

前言|职场实例

今天,小编在工作中遇到一个非常实用的技巧,总结成文章后分享给小伙伴们,希望大家可通过此技巧来提高自己的职场工作效率。

如下图所示:

下图左表中A列为日期列,我们观察到日期列中有很多相同的日期,现在我们想要将相邻的相同日期的单元格进行合并单元格,形成右表E列日期列的效果。

同样的道理,通过将日期列相同日期单元格进行合并单元格后,我们仍可以逆向操作,回到原始状态。
如下图所示:
我们想要将左表中A列日期列相同日期合并后的单元格,批量取消合并单元格,并快速填充全部单元格内容,最后形成右表E列日期列的效果。
操作1|合并单元格
首先,我们右击工作表名称标签,点击“查看代码”命令(或按下快捷键Alt+F11键),进入VBA代码编辑录入窗口。将下方的一段VBA代码复制粘贴进来。
然后点击“运行-运行子过程/用户窗体”命令,会随即弹出一个“只能选择单列”的对话框。然后我们设置“请选择需要合并单元格的区域”,这时候我们将光标点击定位在区域选择框内,回到Excel表格,选择我们需要合并的单元格区域:A2:A10单元格数据区域。最后点击“确定”按钮。我们发现A列日期列相同日期的单元格就批量合并完成了。
合并单元格代码如下:
Sub RngMerge() Dim Rng As Range, Cell As Range, Rg As Range On Error Resume Next Set Rng = Application.InputBox("请选择需要合并单元格的区域", "只能选取单列", ActiveCell.Address, , , , , 8) If Rng Is Nothing Then MsgBox "选择的区域无效!!", 65, "提示": Exit Sub If Rng.Columns.Count > 1 Then MsgBox "只能选择一列", 65, "错误": Exit Sub Set Rng = Intersect(Rng, Rng.Parent.UsedRange) Application.ScreenUpdating = False Application.DisplayAlerts = False Set Rg = Rng(1) For Each Cell In Rng.Offset(1).Resize(Rng.Rows.Count, 1) If Cell <> Cell.Offset(-1, 0) Then With Range(Rg, Cell.Offset(-1)) .Merge .HorizontalAlignment = -4108 .VerticalAlignment = -4108 End With Set Rg = Cell End If Next Application.DisplayAlerts = True Application.ScreenUpdating = TrueEnd Sub
操作2|取消合并单元格并批量填充

首先,我们右击工作表名称标签,点击“查看代码”命令(或按下快捷键Alt+F11键),进入VBA代码编辑录入窗口。将下方的一段VBA代码复制粘贴进来。

然后点击“运行-运行子过程/用户窗体”命令,会随即弹出一个“只能选择单列”的对话框。然后我们设置“请选择需要取消合并单元格的区域”,这时候我们将光标点击定位在区域选择框内,回到Excel表格,选择我们需要取消合并的单元格区域:A2:A10单元格数据区域。最后点击“确定”按钮。我们发现A列日期列相同日期合并后的单元格就批量实现了取消合并单元格并批量填充完整了,即实现了逆向操作。

取消合并单元格代码如下:
Sub RngUnMerge() Dim Rng As Range, Cell As Range On Error Resume Next Set Rng = Application.InputBox("请选择需要取消合并单元格的区域", "只能选取单列", ActiveCell.Address, , , , , 8) If Rng Is Nothing Then MsgBox "选择的区域无效!!", 65, "提示": Exit Sub If Rng.Columns.Count > 1 Then MsgBox "只能选择一列", 65, "错误": Exit Sub Set Rng = Intersect(Rng, Rng.Parent.UsedRange) Application.ScreenUpdating = False Application.DisplayAlerts = False For Each Cell In Rng If Cell.MergeArea.Count > 1 Then With Cell.MergeArea .UnMerge .Value = Cell.Value .Borders.LineStyle = 1 End With End If Next Application.DisplayAlerts = True Application.ScreenUpdating = TrueEnd Sub
Excel学习视频478集下载链接:
不积跬步无以至千里,天天学习,天天进步。
Excel学习视频478集下载,不积跬步无以至千里,天天进步! 2021-07-18

阅读完文章之后,希望小伙伴们在文章底部帮助小编[点赞]点亮[在看]并分享转发到[朋友圈],坚持持续分享的路上很辛苦,需要有你们的鼓励与支持!只要有了大家的鼓励与支持,小编才能更加有热情的帮助大家。您也可以通过在文章底部[留言]的方式反馈实际办公中遇到的Excel各种问题。
(0)

相关推荐