Excel中用VBA解决合并单元格无法排序的问题

2025-10-05 18:46:50

1、在日常办公中经常遇到合并单元格无法排序的问题,

一般,我们会取消合并,取消合并后,会有很多空白单元格,那么又得去挨个填充单元格,填充完成后,重新排序,排序完成后,还得挨个合并相同的单元格,

这样一来一回,

数据量小的就还好,如果数据量大的话,工作量就非常巨大了,而且还容易出错。

下面我们介绍一种用VBA宏处理的方法,灵活使用,效果更好

2、现有如下表格,我们要对工程量排序,但直接排序会报错:此操作要求合并单元格具有相同大小。

Excel中用VBA解决合并单元格无法排序的问题

3、我们打开 开发工具中的Visual Basic,将下列代码复制到编辑框中:

Sub 取消合并单元格并填充空白单元格()

    Dim j

    Dim k, l

   k = InputBox("请输入合并单元格所在列")

     l = Cells(Rows.Count, k).End(xlUp).Row

    Columns(k).UnMerge

    l = Cells(Rows.Count, k).End(xlUp).Row

    For j = 1 To l Step 1

     If Cells(j, k) = "" Then

      Cells(j, k) = Cells(j - 1, k)

      End If

    Next

    End Sub

Sub 合并单元格()

    Dim i

    Dim k, l

    Application.DisplayAlerts = False

   k = InputBox("请输入合并单元格所在列")

 l = Cells(Rows.Count, k).End(xlUp).Row

    For i = l To 2 Step -1

 If Cells(i, k) = Cells(i - 1, k) Then

 Range(Cells(i - 1, k), Cells(i, k)).Merge

 End If

 Next

 Application.DisplayAlerts = True

End Sub

Excel中用VBA解决合并单元格无法排序的问题

4、打开宏,执行:取消合并单元格并填充空白单元格 命令,

Excel中用VBA解决合并单元格无法排序的问题

5、弹出对话框中输入:要整理的单元格列号:D(指工程量列)整理后如下图2

再次执行宏命令:取消合并单元格并填充空白单元格 ,输入C(指工程名)

执行后,如下图3,将合并的单元格都拆分并填充了值。

这样,就可以排序了。

Excel中用VBA解决合并单元格无法排序的问题

Excel中用VBA解决合并单元格无法排序的问题

Excel中用VBA解决合并单元格无法排序的问题

6、排序完成后,再执行宏命令:合并单元格  ,并输入需要合并相同值的单元格所在列。C

再执行宏命令:合并单元格  ,输入 D

这样合并单元格排序就完成了。

Excel中用VBA解决合并单元格无法排序的问题

Excel中用VBA解决合并单元格无法排序的问题

7、敲了一下午键盘,不知道大家掌握了没有,

刚开始用会觉得陌生,后面用多了,就会感觉很方便了。

若觉得有所帮助,希望大家高抬贵手点个赞吧,花了一下午时间整理出来的。谢谢大家。

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