VBA练习:单列数据双重循环

最近在学习杨洋老师的《全民一起VBA》,大家也可以去学习,这是我见过最好的VBA教程,深入浅出非常易懂。

今天做了VBA在同一列中双循环的练习,题目如下:


将同一列中的重复数清除,我使用了FOR循环解决这个问题:


使用FOR循环则必须指明起止位置,普适性不高,所以又用WHILE循环做了一个,思路是先找出重复项,将其字体标为红色,再将红色字体的单元格全部删除:


但这段依然指定了程序查找的范围,其实也可以将set rg = range(“B1:B20”)改为 set rg = range(“B:B”),不过实测运行效率极低,会卡住一会儿。

查看了杨老师的答案,他的思路是使用WHILE循环,每查到一个重复的即删除之,然后将下一行上移。删除单元格并将下方单元格上移的操作方法可以通过录制宏来获得。贴出杨老师的答案参考下:


  

发表评论

邮箱地址不会被公开。 必填项已用*标注