非规则合并单元格内容合并

161 篇文章 16 订阅
3 篇文章 1 订阅

实例需求:对于B列的非规则合并单元,将对应的A列单元格内容合并,并保存在B列中。
在这里插入图片描述
虽然在无数经典图书和文章中都告诫大家,合并单元格是数据分析的绊脚石,但是仍有无数数据分析行业的“烈士”仍然前赴后继的继续跳进这个广为人知的坑。无论如何,既然已经存在这样的数据表了,如何处理呢?
办公室的小姐姐遇到这样的难题,肯定有自称电脑高手的帅锅英雄救美。A列数据粘贴到记事本,然后再分段拷贝到B列单元格,so easy …
此时,小姐姐在工作表中向下拖动滚动条发现100万行数据,帅锅立马不见踪影了…
换做你,如果甩出这段代码,点一下鼠标瞬间完成,接下来如何约小姐姐,就看你的了,呵呵

Sub Demo()
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        If Cells(i, 2).MergeCells Then
            n = Cells(i, 2).MergeArea.Cells.Count
            arr = Application.Transpose(Cells(i, 1).Resize(n, 1).Value)
            Cells(i, 2) = Join(arr, Chr(10))
            i = i + n - 1
        Else
            Cells(i, 2) = Cells(i, 1)
        End If
    Next
End Sub

【代码解析】
第2行代码获取A列有数据的最后单元格的行数。
第3行代码判断第2列指定单元格是否为合并单元格。
第4行代码获取合并单元格区域所包含的单元格个数。
第5行代码就合并单元格对于的A列单元格区域内容转置后读入数组。
第6行代码将数组内容组合一个字符串,使用软回车作为分隔符,并赋值给第2列单元格。
如果第2列指定单元格并不是合并单元格,那么第9行代码将把A列对应单元格内容复制到B列。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值