Excel VBA 8.15 批量取消单元格合并,有现成功能!但是取消之后不能自动填充数据
批量取消单元格合并,有现成功能!但是取消之后不能自动填充数据
点击上方“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,准时再见!
因为公众号没有留言功能(开的比较晚),所以建立一个线下微信群,主要为大家提供一个交流的平台,同时大家也可以提一些对公众号的意见和看法,大家一起学习,一起进步。
因为近期加群人员太杂,需要入群的小伙伴可以先加我微信,备注“加群”我会拉进群,不备注,不加的哦~~