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

运动常识
龙市唐川 2021-04-10 12:59:26
15313当我们在Excel中对合并的单元格排序的时候会提示:此操作要求合并单元格具有相同大小。在这个经验分享之前,也给大家介绍过ExcelVBA宏的使用了,不会的朋友可以去我的分享里查看。那么现在我教大家一个用VBA宏命令解决合并单元格无法排序的方法。

工具/原料

ExcelVBA

方法/步骤

1/7分步阅读

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

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

这样一来一回,

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

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

2/7

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

[图]3/7

我们打开 开发工具中的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

[图]4/7

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

[图]5/7

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

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

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

这样,就可以排序了。

[图][图][图]6/7

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

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

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

[图][图]7/7

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

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

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

相关热门经验知识

  1. 怎样快速记忆英语单词

    我们在初高中学习英语时常常比较侧重于语法的学习,往往忽视了词汇量的积累,而掌握词汇量的多少已经成为衡量一个人外语水平的重要标志。有时或许我们也认识到了这一点,但往往记忆的效果不理想,也做不到持之以恒,常常是即兴记忆。...

  2. 2021年的法定节假日怎样安排的?

    2021年的法定节假日有元旦节、春节、清明节、劳动节、端午节、中秋节和国庆节。每个法定节假日该休息哪几天呢?下面我们一起来了解下吧。提前了解法定节假日的安排,可以提前计划出行,出行的时候建议要注意安全。 ...