vba合并单元格并保留值
1、首先打开需要进行合并内容的工作表,以下面表格为例:

2、开发工具选项卡-Visual Basic,在工程窗口右键插入一个模块,将以下代码复制到代码窗口:
Sub 合并单元格()
Dim n As Integer, i As Integer
Application.ScreenUpdating = False
Set a = Application.InputBox("请选择需要合并的所在列", "提示框", , , , , , 8)
n = a.Column
Cells(1, n).Offset(0, 1).EntireColumn.Insert
For i = 1 To Cells(Rows.Count, n).End(xlUp).Row
If Cells(i, n) = Cells(i + 1, n) Then
Cells(i, n).Offset(0, 1).Resize(2, 1).Merge
End If
Next i
With Range(Cells(1, n), Cells(Cells(Rows.Count, n).End(xlUp).Row, n))
.Offset(0, 1).Copy
.PasteSpecial xlPasteFormats
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Offset(0, 1).EntireColumn.Delete
End With
Application.ScreenUpdating = True
End Sub

3、点击运行按钮,会弹出一个选择合并单元格所在列的对话框,选择需要合并的列,点击确定即可。


4、现在我们检查看看是否合并了单元格并且内容还在呢?点击取消合并后,原单元格的数据还在。


5、以上就是通过vba合并单元格并保留值的方法了。具体方法是通过在需要合并的列右边插入一列,并判断符合合并的内容,在右边对应列进行合并,再通过复制,粘贴格式到实际需要合并的单元格中。