excel表格怎么批量合并单元格并保留所有内容?

如图,前面列已经进行了合并,想让后面列也按照前面列的格式进行合并,并保留所有内容,谢谢大神

用一个老前辈的话,你想实现这个表格效果,完全可以通过数据透视表。合并单元格是一件吃力不讨好的苦力活,一时解决了问题将来二次处理数据还是会痛不欲生。


但如果题主执意要用合并单元格,能告诉我后面有几列要做合并吗?感谢。

直接修改在这里方便查看吧。


在工作表按Alt+F11,跳出如图VBA窗口,在对应的工作表名称处双击,在右侧空白处粘贴以下代码:

Sub mMerge()

Application.DisplayAlerts = False

For Each Rng In Range("J2:J" & ActiveSheet.UsedRange.Rows.Count)

With Rng

If .MergeCells = True And .Row = .MergeArea.Row Then

For mRow = .MergeArea.Row To .MergeArea.Row + .MergeArea.Rows.Count - 1

mValue1 = mValue1 & Cells(mRow, 11) & Chr(10)

mValue2 = mValue2 & Cells(mRow, 12) & Chr(10)

Next

Range("K" & .MergeArea.Row & ":K" & .MergeArea.Row + .MergeArea.Rows.Count - 1).Merge

Range("K" & .MergeArea.Row).WrapText = True

Range("K" & .MergeArea.Row) = Left(mValue1, Len(mValue1) - 1)

mValue1 = Empty

Range("L" & .MergeArea.Row & ":L" & .MergeArea.Row + .MergeArea.Rows.Count - 1).Merge

Range("L" & .MergeArea.Row).WrapText = True

Range("L" & .MergeArea.Row) = Left(mValue2, Len(mValue2) - 1)

mValue2 = Empty

End If

End With

Next

Application.DisplayAlerts = True

End Sub


效果如图



追答

我试试看用代码,但要稍等一下,水平有限哈哈

代码你照着图片里面的换行吧,比较不会出语法错误,网页排版效果不好

保存后,视图里面运行宏mMerge即可

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-27
直接操作真不可以啊
要么你用函数提取后再操作合并单元格
要么你复制数据到记事本,变成文本后再复制过来操作粘贴
但是你的思路真不想说什么啊!不是Excel表格学习方向……追答

只是打印效果的话,最简单的还是把中间的单元格线条设置成无即可
若非要想合并单元格操作,只好复制去记事本,操作后再复制过来,真的是折腾啊!

第2个回答  2020-12-20

Excel怎样快速处理合单元格列的邻列分行合并

第3个回答  2020-03-27
含有多个值不可以合并。
相似回答