分享

Excel VBA 8.15 批量取消单元格合并,有现成功能!但是取消之后不能自动填充数据

 Excel和VBA 2021-06-28

批量取消单元格合并,有现成功能!但是取消之后不能自动填充数据


点击上方“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 IfNext aEnd Sub

其实代码还是非常的简单的,这也是VBA的强大之处,简单的几句代码就可以实现我们很多需要手工操作浪费时间的工作。

来看看效果动图

从结果上来看,我们很好的实现了我们的目的和效果

代码解析

既然已经实现了效果,我们这里来看看代码执行的过程

Set rng = Application.InputBox("请选择需要取消合并的区域", "取消合并", , , , , , 8)

首先我们先通过inputbox方法来灵活的选择我们需要取消合并单元格的区域,然后我们就开始循环

首先判断这个单元格是否存在合并单元格

If a.MergeCells = True Then

这是我们上节的知识点,如果存在合并单元格呢?

我们就可以执行拆分和填充的操作了,但是在拆分之前,我们需要知道合并单元格中的内容,所以我们这里声明一个变量s,用它来承载单元格的内容

s = a.Value

现在我们就可以执行单元格的拆分了。

如何拆?

range.unmerge

来看看慢动作下的效果

今天的代码并不算是太难,小伙伴们掌握了吗

==========================

好了,明晚21:00,准时再见!

因为公众号没有留言功能(开的比较晚),所以建立一个线下微信群,主要为大家提供一个交流的平台,同时大家也可以提一些对公众号的意见和看法,大家一起学习,一起进步。

因为近期加群人员太杂,需要入群的小伙伴可以先加我微信,备注“加群”我会拉进群,不备注,不加的哦~~

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多