Sub MergeConsecutiveDuplicates()
Dim rng As Range
Dim cell As Range
Application.DisplayAlerts = False '关闭提示,如果不关闭会反复提示是否合并单元格
Application.ScreenUpdating = False '关闭屏幕刷新,避免程序执行过程中屏幕卡顿
' 遍历每一列
For Each cell In Selection
' 如果当前单元格有值,则尝试合并连续的相同单元格
If Not IsEmpty(cell.Value) Then
' 初始化合并范围为当前单元格
Set rng = cell
' 遍历下一个单元格,如果它与当前单元格值相同,则扩展合并范围
Set nextCell = cell.Offset(1, 0)
Do While nextCell.Value = cell.Value
Set rng = Union(rng, nextCell)
Set nextCell = nextCell.Offset(1, 0)
Loop
' 合并范围中的单元格
rng.Merge
Set cell = nextCell
End If
Next cell
Application.DisplayAlerts = True '重新打开提示功能
Application.ScreenUpdating = True '重新打开屏幕刷新
End Sub
【Excel宏 合并选择范围内的相同的连续单元格】
于 2024-04-08 14:58:26 首次发布