拷贝合并单元格时保留格式

32 篇文章 1 订阅
3 篇文章 1 订阅

Excel中的合并单元格是个很奇葩的功能,有的用户非常喜欢这个功能,但是合并单元格的功能有时差强人意,处理起来非常麻烦,从数据处理的角度考虑,不推荐使用合并单元格。

既然Excel提供了合并单元格功能,那么用户就可能会使用这个功能,例如A1:B4为合并单元格区域,其中的文字内容具有不同的格式,现在需要将其内容和格式拷贝到D1单元格,目标区域也是一个合并单元格区域,使用Excel的拷贝与粘贴,只能把文字拷贝过去,字体格式丢失了,如下图所示。

在这里插入图片描述

Sub CopyMerge(srcCel As Range, desCel As Range)
    Dim srcRng, desRng
    Set srcRng = srcCel.MergeArea
    Set desRng = desCel.MergeArea
    If srcCel.MergeCells Then srcCel.UnMerge
    If desCel.MergeCells Then desCel.UnMerge
    srcCel.Copy desCel
    Application.DisplayAlerts = False
    srcRng.Merge
    desRng.Merge
    Application.DisplayAlerts = True
End Sub
Sub demo()
    Call CopyMerge([a1], [g1])
End Sub

【代码解析】
第1~12行代码为自定义过程实现拷贝内容,第一个参数为源单元格,第二个参数为目标单元格。
第3行代码获取源单元格的合并单元格区域对象引用。
第4行代码获取目标单元格的合并单元格区域对象引用。
第5行代码判断源单元格是否为合并单元格,如果是的话,则取消合并单元格。
第6行代码使用类似方式除了目标单元格。
第7行代码将源单元格内容拷贝至目标单元格(单个单元格)。
第8行代码屏蔽系统提示信息。
第9行代码合并源单元格区域。
第10行代码合并目标单元格区域。
第11行代码合并目标单元格区域。
第13~15行代码调用自定义函数拷贝合并单元格,结果如下图所示。

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值