VBA将合并单元格拆分成单个单元格并每个单元格放入相同内容
发布日期:2024-07-22 03:42 点击次数:132
在Excel中,如果你想要用VBA将一个合并的单元格拆分成单个单元格,并且每个单元格都填充相同的内容,比如下图例子:
图片
可以使用以下代码:Sub 指定合并单元格拆分成单个单元格并放入相同内容() Set Z = Cells(2, 1) '设置要进行拆分的合并单元格区域(使用合并单元格区域中的任一单元格即可) Dim rng As Range '设置变量为单元格对象 Cell_value = Z.MergeArea.Cells(1, 1).Value '获取合并单元格的值 Set A = Range(Z.MergeArea.Address) '返回合并区域的范围地址,将其设定为单元格区域对象 Z.MergeCells = False ' 拆分合并单元格 For Each rng In A '遍历原单元格区域的每个单元格 rng = Cell_value Next End Sub
如果该列需要拆分多个单元格,比如下图例子:
图片
则可以优化代码为:
Sub 指定某列所有合并单元格拆分成单个单元格并放入相同内容() Dim cell As Range '设置变量为单元格对象 col = 1 '设定合并单元格所在的列 For Row = 1 To 10 '从第1行到第10行 If Cells(Row, col).MergeCells = True Then '检测是否为合并单元格 Cell_value = Cells(Row, col).MergeArea.Cells(1, 1).Value '获取合并单元格的值(原始内容) Set A = Range(Cells(Row, col).MergeArea.Address) '返回合并区域的范围地址,将其设定为单元格区域对象 Cells(Row, col).MergeCells = False ' 拆分合并单元格 For Each cell In A '遍历原单元格区域的每个单元格 cell = Cell_value '放入合并单元格的原始内容 Next End If Next
如果整个表内的合并单元格都需要拆分并填充,则可以这样:
Sub 表中所有合并单元格拆分成单个单元格并放入相同内容() Dim rng As Range '设置变量为单元格对象 For Each cell In ActiveSheet.UsedRange '遍历所有活动单元格 If cell.MergeCells = True Then Cell_value = cell.MergeArea.Cells(1, 1).Value '获取合并单元格的值(原始内容) Set A = Range(cell.MergeArea.Address) '返回合并区域的范围地址,将其设定为单元格区域对象 cell.MergeCells = False ' 拆分合并单元格 For Each rng In A '遍历原单元格区域的每个单元格 rng = Cell_value '放入合并单元格的原始内容 Next End If Next End Sub
相关文章:
vba合并单元格的合并区域MergeArea属性
VBA合并单元格Merge的用法
VBA获取合并单元格的值
vba判断合并单元格开始行结束行
以上内容对您有帮助可以分享或转藏,避免以后找不到。想要了解更多VBA相关知识,欢迎到http://moqingyan.360doc.com我的个人图书馆查看。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。