分享

VBA(10)_合并单元格知识

 互利互读一辈子 2024-06-18 发布于北京

在 VBA 中,Range.Merge 方法用于合并指定的单元格区域。代码如下

Sub 合并单元格() Range('C3:C5').MergeEnd Sub

如果要取消合并的单元格,代码如下:

Sub 取消合并单元格()   Range('C3:C5').UnMergeEnd Sub

判断有没有合并单元格,代码如下

Sub 判断合并单元格() If Range('C3:C5').MergeCells Then 'Range对象的MergeCells属性判断有没有合并单元格 MsgBox '有合并单元格' Else MsgBox '没有合并单元格' End IfEnd Sub

合并内容相同的连续单元格,代码如下

Sub 合并相同内容的连续单元格()    Dim IntRow As Integer, i As Integer    '定义名称为IntRow、i,类型为Integer    Application.DisplayAlerts = False    '关闭屏幕刷新        With Sheet1        'With语句主要用于对特定对象进行一系列操作,以简化代码书写和提高代码可读性            IntRow = .Range('A65536').End(xlUp).Row            'IntRow等于最后一个非空行号,即结果为19                For i = IntRow To 2 Step -1                '循环i 等于最后非空行号的值到第2行,递减1,即结果为16 to 2                    If .Cells(i, 1).Value = .Cells(i - 1, 1).Value Then                    '如果第i(开始:19)行第1列单元格的值,等于第i(开始:19)行-1第1列单元格的值                       .Range(.Cells(i - 1, 1), .Cells(i, 1)).Merge                       '第i行(开始:19)行-1第1列单元格和第i行(开始:19)行单元格区域合并                    End If                Next        End With    Application.DisplayAlerts = True    '打开屏幕刷新End Sub

动画效果如下

取消合并单元格并保留内容,代码如下

Sub UnMerge() Dim StrMer As String Dim IntCot As Integer Dim i As Integer With Sheet1 For i = 2 To .Range('A65536').End(xlUp).Row StrMer = .Cells(i, 1).Value IntCot = .Cells(i, 1).MergeArea.Count .Cells(i, 1).UnMerge .Range(.Cells(i, 1), .Cells(i + IntCot - 1, 1)).Value = StrMer i = i + IntCot - 1 Next End WithEnd Sub

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多