批量取消单元格合并,有现成功能!但是取消之后不能自动填充数据点击上方“Excel和VBA”,选择“置顶公众号” 致力于原创分享Excel的相关知识,源码,源文件打包提供 一起学习,一起进步~~ 前景提要上一节我们分享了如何通过VBA代码来判断当前单元格区域内是否存在合并单元格,当然确定单元格区域中是否存在合并单元格, 并不是我们操作的目的,我们最终的目的还是要针对合并单元格进行操作,比方说拆分并单元格!很多小伙伴们都一定知道Excel自身是有取消合并单元格的功能的 但是问题就是取消合并之后的单元格并不能够自动填充数据,比方说这样的 还是需要手工去填充,非常的麻烦,那么有没有办法实现在取消合并单元格的同时执行填充的操作呢? 场景说明这是我们今天模拟的简单的数据源,我们可以看到姓名列都进行了单元格合并,在上面我们也演示了Excel自带的取消合并功能并不能够同时执行填充操作,所以这里我们通过VBA代码来实现两个效果 1.取消合并单元格 2.填充空格的数据 代码区Sub TEST() Dim rng As Range, a As Range, s$ Set rng = Application.InputBox("请选择需要取消合并的区域", "取消合并", , , , , , 8) For Each a In rng If a.MergeCells = True Then s = a.Value With a.MergeArea .UnMerge .Value = s End With End If Next a End Sub 其实代码还是非常的简单的,这也是VBA的强大之处,简单的几句代码就可以实现我们很多需要手工操作浪费时间的工作。 来看看效果动图 从结果上来看,我们很好的实现了我们的目的和效果 代码解析既然已经实现了效果,我们这里来看看代码执行的过程 Set rng = Application.InputBox("请选择需要取消合并的区域", "取消合并", , , , , , 8) 首先我们先通过inputbox方法来灵活的选择我们需要取消合并单元格的区域,然后我们就开始循环 首先判断这个单元格是否存在合并单元格 If a.MergeCells = True Then 这是我们上节的知识点,如果存在合并单元格呢? 我们就可以执行拆分和填充的操作了,但是在拆分之前,我们需要知道合并单元格中的内容,所以我们这里声明一个变量s,用它来承载单元格的内容 s = a.Value 现在我们就可以执行单元格的拆分了。 如何拆? range.unmerge 来看看慢动作下的效果 今天的代码并不算是太难,小伙伴们掌握了吗 ========================== 好了,明晚21:00,准时再见! 因为公众号没有留言功能(开的比较晚),所以建立一个线下微信群,主要为大家提供一个交流的平台,同时大家也可以提一些对公众号的意见和看法,大家一起学习,一起进步。 因为近期加群人员太杂,需要入群的小伙伴可以先加我微信,备注“加群”我会拉进群,不备注,不加的哦~~ |
|