Excel使用VBA合并单列、多列单元格

本文介绍如何使用VBA在Excel中合并单列或多列的相同内容单元格,提供具体代码示例,并指出当前代码存在的限制,即在合并时要求对应行的其他列内容一致,但现有代码无法满足这一需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Excel使用VBA合并单列、多列单元格

多列合并相同内容单元格

合并相同单元格的功能如下同,让相同内容的单元格合并为一个。
实现图中功能
具体代码如下:

Sub 相同内容合并单元格()
'
' 
'

'
Dim i, j As Long
Dim allAddress As Variant
Dim mergeRange As Range

Set mergeRange = Selection
allAddress = Split(mergeRange.Address, ",")
Application.DisplayAlerts = False

For j = 0 To UBound(allAddress)
    '对每个所选区域的每列进行合并

    Dim firstRow As Long
    Dim firstColumn As Long
    Dim seRange As Range
    Dim columnsCount As Long
    Dim k As Long
    
    Set seRange = Range(allAddress(j))
    firstRow = seRange.Row
    firstColumn = seRange.Column
       
    '循环每列
    For i = firstColumn To firstColumn + seRange.Columns.Count - 1
    '循环每行
        For k = firstRow + seRange.Rows.Count - 1 To firstRow Step -1
            If Cells(k, i) <> "" And k - 1 > 0 Then
                If Cells(k, i).Value = Cells(k - 1, i).Value Then
                    Range(Cells(k, i), Cells(k - 1, i)).Merge
                End If
            End If
        Next k
    Next i
Next j

Application.DisplayAlerts = True

    
End Sub

选择区域,然后执行就可以合并多列的中相同内容的单元格,效果如下
选择区域,然后执行

上述VBA实现的功能,仅合并相同内容单元格,和WPS中的功能类似。

目前的不足在于,假如合并B列的单元格时,要求对应行A列单元格也一致,暂时无法满足,需进一步拓展,如下图:在VBA执行后,A、B列都有合并相同单元格,但B列性别合并后,没有与A列相同。即A列中(A2:A4合并后)B列对应的B2:B4也应该合并,但是代码只会合并B2:B6(都为女),无法一致.使用时需注意!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

业余爱好者Plus

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

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

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

打赏作者

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

抵扣说明:

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

余额充值