EXCEL合并重复项,合并空白项

使用方法
1.打开EXCEL后选中需要合并的内容
在这里插入图片描述
2.ALT+F11打开VBA界面
在这里插入图片描述
3.选中需要执行合并代码的工作表。
在这里插入图片描述
4.双击窗体打开代码界面。
在这里插入图片描述

5.粘贴以下代码,按F5执行。功能是合并选中区域的重复值与空白值

Sub MergeDuplicateCellsForMultipleColumns()
    Dim currentValue As String
    Dim previousValue As String
    Dim mergeStartRow As Long
    Dim ws As Worksheet
    Dim startRow As Long, endRow As Long, startColumn As Long, endColumn As Long
    Dim i As Long, j As Long
    
    ' 设置工作表和选择范围
    Set ws = ThisWorkbook.ActiveSheet
    startRow = Selection.Row
    endRow = Selection.Rows(Selection.Rows.Count).Row
    startColumn = Selection.Column
    endColumn = Selection.Columns(Selection.Columns.Count).Column
    
    ' 禁用警告弹窗
    Application.DisplayAlerts = False
    
    ' 清除所有选定区域的合并单元格
    ws.Range(Selection.Address).UnMerge
    
    ' 遍历选定的列
    For j = startColumn To endColumn
        previousValue = ""
        mergeStartRow = startRow ' 初始化合并起点
        
        ' 遍历选定列的每一行
        For i = startRow To endRow
            currentValue = ws.Cells(i, j).Value
            
            ' 如果当前值与前一个值不同(且前一个值非空),需要处理合并
            If currentValue <> previousValue Then
                ' 如果存在一个合并范围,执行合并
                If previousValue <> "" Then
                    ws.Range(ws.Cells(mergeStartRow, j), ws.Cells(i - 1, j)).Merge
                End If
                ' 更新合并起点
                If currentValue <> "" Then
                    mergeStartRow = i
                End If
            End If
            
            ' 更新上一个值
            If currentValue <> "" Then
                previousValue = currentValue
            End If
        Next i
        
        ' 合并最后一段区域(若存在未处理的合并区域)
        If previousValue <> "" And mergeStartRow <= endRow Then
            ws.Range(ws.Cells(mergeStartRow, j), ws.Cells(endRow, j)).Merge
        End If
    Next j
    
    ' 恢复警告弹窗
    Application.DisplayAlerts = True
End Sub

6.效果如下。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cc灵风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值