在工作表中我们经常用查找功能,在一列中查找某个内容,查找下一个,那在VBA中我们该如何进行查找呢? 我们看个实例: 上图中我们希望通过输入班级,点击筛选就能出来想要的内容,这里我忘了在筛选之前先做个清除,所以筛选二班记录时,三班的记录没有清除。 我们要把某个班级的记录筛选出来,那么就希望首先在对应的列里找到某个班级所在的单元格,这里就用到了find,找到后就把该行复制到对应位置,然后进行查找下一个。 上图中代码如下: Sub 筛选() Dim rng1, rng2, rng3 As Range, addr$, adr$ Set rng1 = Range('a:a').Find(Range('e6').Value) addr = rng1.Address Do Set rng1 = Range('a:a').FindNext(rng1) adr = rng1.Address Set rng2 = Cells(Rows.Count, 'e').End(xlUp)(2, 1) Set rng3 = rng1.EntireRow.Range('a1:c1') rng3.Copy rng2 Loop Until addr = rng1.Address End Sub find的语法: range(某区域).find(某值) findnext的语法: Range(某区域).FindNext(find的结果) 使用findnext要先使用find找到第一个结果,然后在用findnext找到下一个结果。 基本用法清楚以后,给大家留到练习题: 批量删除特定的行,效果做成如下: 今天的分享就到这里,VBA不动手是学不会的,所以一定要动手写。 视频教程正在陆续录制中(目前录制了44节了),需要的同学可以加我微信号:527240310,50元,一次付费后,以后所录视频均可以免费索取,而且不懂的地方可以交流。非诚勿扰,谢谢配合! |
|