VBA练习:英文姓名匹配

本文的习题来自于杨洋老师的《全民一起VBA》,内容深入浅出,非常易懂。有需要提高EXCEL水平的同学不可错过。

主要内容

今天练习的是字符串的处理,涉及到大小写转换LCase/UCase,空格处理Replace/Trim,循环Do while/For。习题如下:


练习如下:

输出如下:

 

错误记录:

  1. 在跳出For循环时应写为Exit for
  2. Replace的用法写错了,语法应为Replace(string,find,replacewith[,start[,count[,compare]]])

疑问:

为什么前面注释的三行都会提示类型不匹配?

两句数组的写法有什么区别呢?

本文的习题来自于杨洋老师的《全民一起VBA》

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

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

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


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


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


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

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