使用VBA实现批量快速取消单元格合并的方法

2025-10-30 06:26:19

1、以下表数据为例,有不同大小的合并单元格,现在需要批量取消单元格合并。

使用VBA实现批量快速取消单元格合并的方法

2、因为我们需要借助VBA来实现目的,所以需要在自定义功能区勾选“开发工具”。

使用VBA实现批量快速取消单元格合并的方法

3、返回主界面,找到开发工具,在其中点击“Visual Basic”。

使用VBA实现批量快速取消单元格合并的方法

4、进入VBA界面,在其中输入如下代码

Sub UnMergeRange2() '取消合并单元格

Dim MaxRow As Integer '

Dim Rng As Range

Dim x%, y%, m%, n%, i%

Dim Rng2 As Range

    'Dim x% 等价于 Dim x As Integer

On Error ResumeNext'发生错误继续运行

'Rng接收选择的区域

    Set Rng = Application.InputBox("请选择需要取消合并单元格的区域:", _

                "区域选择", , , , , , 8)

'x循环选择区域的行

'y循环选择区域的列

    For x = 1 To Rng.Rows.Count

       For y = 1 ToRng.Columns.Count

           'Rng2 接收循环在选择区域的行列(单元格)

           Set Rng2 = Rng.Cells(x, y)

           'i 接收Rng2合并单元格的合并单元格的数量

           i = Rng2.MergeArea.Count

           

           '当i=1时,则不存在合并单元格

           '当i>1时,说明存在合并单元格

           If i > 1 Then

                'm 接收Rng2合并单元格区域 行数的统计

                'n 接收Rng2合并单元格区域 列数的统计

                m = Rng2.MergeArea.Rows.Count

                n =Rng2.MergeArea.Columns.Count

                Rng2.UnMerge '取消合并单元格

               

                'Rng2(取消合并后)扩展m行n列的区域,

                '等于Rng2的内容

                Rng2.Resize(m, n).Value =Rng2.Value

           End If

       Next

    Next

使用VBA实现批量快速取消单元格合并的方法

使用VBA实现批量快速取消单元格合并的方法

5、代码输入完成之后,我们点击上方的运行按钮,运行这段代码。

使用VBA实现批量快速取消单元格合并的方法

6、在弹出的对话框中选择需要取消单元格合并的数据区域。

使用VBA实现批量快速取消单元格合并的方法

7、点击确定之后即可顺利运行,最后可以看到取消单元格合并的效果。

我们也可以将EXCEL表格另存为XLSM格式,方便以后复制代码处理类似数据。

使用VBA实现批量快速取消单元格合并的方法

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢