VBA-SZ第1节|表格中的搜索/定位/替换

2019-05-10  本文已影响0人  努力奋斗的durian

最近更新:'2019-05-10'

1.Find快速查找内容
2.find函数的可选参数
3.find的前世记忆

1.Find快速查找内容

1.1find的基本查找

案例:在一个excel表格中查找熊猫这两个字

1.1.1双重循环查找

比较通俗的查找方法.



加上时间统计语句,来看看运行的时间,用时共13秒


1.1.2 二维数组的查找

有没有比双重循环更好的方法呢?可以使用二维数组进行查找.

Range内容可以直接导入二维数组,这样运行的速度就会快很多,只需要2s


1.1.3 Find的查找

有没有比range更方便的方法呢?可以使用Find的方法.

用find的方法找到第一个单元格




当把熊猫改成雪人,即数据表没有熊猫这个单元格内容,相当于查找的对象没有时,find返回又是什么呢?


代码提示出错,出错调试把r选中,就会有显示相关的数值,比如这里显示nothing.nothing表示什么对象都不是的意思.



在无法找到指定内容时,Find方法返回 Nothing,使用Find时必须考虑,Nothing的情况!

那么怎么样操作可以考虑到find是nothing的情况?如下截图:


1.2find的高级选项查找

1.2.1 find函数与excel菜单栏find的对应关系
1.2.2 find函数的参数

2.find函数的可选参数

2.1 find函数参数:大小写MatchCase

2.2 find函数参数:匹配单元格LookAt

2.3 find函数参数:查找范围LookIn

xlValues和xlFormulas会有交叉重叠的部分


2.4 find函数参数:是否按格式查找SearchFormat和application.findformat

查找特定格式的单元格,比如字体/背景颜色等等,如下截图:

比如以下案例,5个单元格内容都一样,区别就是字体颜色还有背景色不一致.如果想把有格式的单元格(包含背景色/字体等等所有的格式)进行查找,又需要怎么操作呢?

比如以下案例,5个单元格内容都一样,区别就是字体颜色还有背景色不一致.如果想把白色字体和黑底背景熊猫找出来,又需要怎么操作呢?

最后运行的结果就是如下截图:


如果需要查找特殊格式的单元格,可以通过录制宏的方法,得到单元格的格式,再设置application.findformat的格式代码,再设置searchformat=true即可.

一般设置application.findformat的格式代码有很多条重复性相关的代码,可以建议使用with...end with

3.find的前世记忆

上一篇 下一篇

猜你喜欢

热点阅读