VBA:合并多行到同一列

本文介绍了如何使用VBA编写一个名为SubMergeRowsBasedOnColumnA的宏,该宏在Excel中检测并合并Sheet1中按列A值重复的行,将下一行的非空列数据复制到上一行相应位置,然后删除重复行。
摘要由CSDN通过智能技术生成
Sub MergeRowsBasedOnColumnA()
    Dim ws As Worksheet
    Dim rng As Range
    Dim r As Long
    Dim lastRow As Long
    Dim col As Integer
    Dim j As Integer: j = 1
    

    Set ws = ThisWorkbook.Sheets("Sheet1") '将"Sheet1"更改为你的工作表名称
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    Application.ScreenUpdating = False

    For r = lastRow To 2 Step -1
        If ws.Cells(r, "A").Value = ws.Cells(r - 1, "A").Value Then
            '从后往前
            '下一行的从B开始到后面的所有不空的列的值,都复制到上一列的最后
            Set startCell = ws.Cells(r, "B") '设置起始单元格
            Set endCell = startCell.End(xlToRight)
            col = ws.Cells(r - 1, 1).End(xlToRight).Column
            '遍历并打印值
            j = 1
            For i = startCell.Column To endCell.Column
                ws.Cells(r - 1, col + j).Value = ws.Cells(r, i).Value
                j = j + 1
            Next i
            
            
            
            ws.Rows(r).Delete
        End If
    Next r

    Application.ScreenUpdating = True
End Sub



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值