说明
作为一名优秀人才,总是能碰到最复杂的情况,就比如下面的图片中的数据情况:
图中姓名等信息均为虚构,不存在泄露个人信息问题。看着如此数据情形,要将无用的页头、空行等删除,你会怎么操作呢?手动删除?这里我只胡编了45行数据,可是如果实际中有一千行、一万行甚至近十万行的数据呢?使用Excel VBA操作当然是又准确又高效了。
第一种方式是:1、首先获取最后一行数据所在行数;2、从最后一行开始到第一行逐行检查是否是有效数据行,如果不是则整行删除;3、运行的结果就仅剩有效数据了。这种方式对于数据量不是很大的情况,运行的时间还是比较短的,但是我在实际运行中数据行数在5千以上的时候就会很慢,有时候我会认为死机了。
第二种方式是:1、首先获取最后一行数据所在行数;2、从第一行开始到最后一行逐行检查是否是有效数据行,如果不是则使用Union函数将无效数据行联合起来;3、选中联合起来的区域,执行删除。这种方式相对于第一种方式简直是神速。看代码:
代码code
Sub 超级Range()
Dim SuperRange As Range
Set SuperRange = Union(Range("1:1"), Range("3:3"))'将第1行和第3行联合起来
Set SuperRange = Union(SuperRange, Range("5:5"))'将之前已经联合的区域再与第5行联合起来
SuperRange.Select'选中联合区域
Selection.delete shift:=xlUp'删除联合区域
End Sub
使用说明
代码暂时只给出了核心的Union函数的使用示例,暂未完全解决图片中实例的问题,如有不清楚如何使用的请在评论区留言给我,谢谢!