清空合并单元格之隐藏单元格

合并单元格有真有假,如果大家不知道二者的区别,请移步《Excel合并单元格之真假李逵》先了解一下。识别两种合并单元格的方法也很简单,辅助列使用公式读取一下单元格内容,如果合并单元格之隐藏单元格仍然有内容,那么这就是粘贴格式创建的合并单元格。
清空合并单元格之隐藏单元格_第1张图片
接下来要讲的合并单元格是用粘贴格式产生的,如果希望清空D列中合并单元格中的隐藏单元格内容,例如:D3:D4,常规的操作方法是,选中D2,取消合并单元格,然后再次设置合并单元格,就会清空D3:D4单元格区域。如果工作表中有合并单元格数量很多,这样的操作会搞到令人怀疑人生。借助VBA可以快速实现这个需求。示例代码如下。

Sub demo()
    Dim r As Range
    lst = Cells(Rows.Count, 2).End(xlUp).Row
    For i = 2 To lst
        Set r = Cells(i, 4)
        If r.MergeCells Then
            If r.MergeArea(1).Address <> r.Address Then r = ""
        End If
    Next
End Sub

【代码解析】
第3行代码获取最后一行数据的行号。
第4~9行代码循环处理每一行。
第5行代码将第四列单元格对象保存在变量中。
第6行代码判断单元格是否属于合并单元格。
第7行代码判断当前单元格的地址是否与所在合并单元格区域第一个单元格的地址相同,如果相同,不做任何处理,如果不同,那么将清空单元格内容。
清空合并单元格之隐藏单元格_第2张图片

运行代码,妥妥的清空隐藏单元格。辅助列显示0,并不代表D列被填充了数字0,取消D2单元格的合并格式,就可以看到真实结果。

清空合并单元格之隐藏单元格_第3张图片


你可能感兴趣的:(VBA,Excel,单元格,合并单元格,隐藏单元格,清空单元格,合并,清空)