使用VBA实现批量快速取消单元格合并的方法
1、以下表数据为例,有不同大小的合并单元格,现在需要批量取消单元格合并。

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

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

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


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

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

7、点击确定之后即可顺利运行,最后可以看到取消单元格合并的效果。
我们也可以将EXCEL表格另存为XLSM格式,方便以后复制代码处理类似数据。
