分享

VBA中的查找与查找下一个(find、findnext)!

 L罗乐 2018-01-31


在工作表中我们经常用查找功能,在一列中查找某个内容,查找下一个,那在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元,一次付费后,以后所录视频均可以免费索取,而且不懂的地方可以交流。非诚勿扰,谢谢配合!


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多