使用VBA实现批量快速取消单元格合并的方法
1、以下表数据为例,有不同大小的合并单元格,现在需要批量取消单元格合并。
2、因为我们需要借助VBA来实现目的,所以需要在自定义功能区勾选“开发工具”。
3、返回主界面,找到开发工具,在其中点击“Visual Basic”。
4、进入VBA界面,在其中输入如下代码SubUnMergeRange2()'取消合并单元格DimMaxRowAsInteger'DimRngAsRangeDimx%, y%, m%, n%, i%DimRng2AsRange 'Dim x% 等价于 Dim x As IntegerOn Error ResumeNext'发生错误继续运行'Rng接收选择的区域SetRng = Application.InputBox("请选择需要取消合并单元格的区域:", _ "区域选择", , , , , , 8)'x循环选择区域的行'y循环选择区域的列Forx = 1ToRng.Rows.CountFory = 1ToRng.Columns.Count'Rng2接收循环在选择区域的行列(单元格)SetRng2 = Rng.Cells(x, y)'i接收Rng2合并单元格的合并单元格的数量i = Rng2.MergeArea.Count'当i=1时,则不存在合并单元格'当i>1时,说明存在合并单元格Ifi > 1Then'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.ValueEnd IfNextNext
5、代码输入完成之后,我们点击上方的运行按钮,运行这段代码。
6、在弹出的对话框中选择需要取消单元格合并的数据区域。
7、点击确定之后即可顺利运行,最后可以看到取消单元格合并的效果。我们也可以将EXCEL表格另存为XLSM格式,方便以后复制代码处理类似数据。