本文主要是介绍非空数据提取之 -- 俄罗斯方块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
插图来自互联网,版权归属原作者
大家认识上图吗?如果是想起童年时光,只能说:客官,你暴露年龄了
言归正传,需要处理的数据如下图所示,A列至O列数据出现的位置无规律,现在需要将所有数据整理如右侧,就像俄罗斯方块游戏中,方块最终排列整齐落到底部一样。
示例代码如下。
Sub Demo()With Sheet1.Columns("P:AAA").ClearFor i = 1 To 4Set TargetCel = .Cells(1, i * 3 + 14).Cells(1, i * 4 - 3).Resize(23, 3).Copy TargetCelTargetCel.Resize(26, 3).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUpNextEnd With
End Sub
【代码解析】
第3行代码清除工作表内容,用于保存结果。
第4~8行代码循环处理4组数据。
第5行代码指定保存数据的单元格区域起始位置。
第6行代码将数据拷贝到TargetCel指定的位置。
第7行代码删除空行,SpecialCells(xlCellTypeBlanks)
用于定位空单元格,Shift:=xlUp
指定删除单元格后,向上移动单元格。
按照普通的实现思路需要将数据加载到数组中,然后逐行循环判断是否为空,然后再写入工作表的指定位置,但是借助Excel的内置功能实现起来更快捷,可以快速定位空单元格,灵活运用这些功能就能快速解决问题。
这篇关于非空数据提取之 -- 俄罗斯方块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!