龙空技术网

VBA实现高级筛选

大牛郭 456

前言:

此刻咱们对“vba如何进行模糊筛选”可能比较讲究,兄弟们都需要剖析一些“vba如何进行模糊筛选”的相关知识。那么小编同时在网上网罗了一些有关“vba如何进行模糊筛选””的相关文章,希望大家能喜欢,你们一起来学习一下吧!

最近一直有朋友问到了Excel里面的筛选、查询,将筛选结果反馈到指定区域的问题。综合来看,这一系列的需求,其实就是一个Excel里面的高级筛选问题。

关于高级筛选,可能很多朋友并没有注意到这个功能,更多的可能还只是用到了基本的筛选。 下图就是一个高级筛选的图示:

以上这种方式就能完成一次高级筛选,并把结果返回到指定的区域。但这只能完成单次筛选,如果下次想再次筛选,那么又得从头操作一次。如果想将这种筛选方式搞成一个可复用的,或者说配置一次,可以根据筛选条件多次筛选,不需要再从头再来这一系列的操作,搞成一个查询器,那么就得使用VBA代码,来将这些高级筛选过程固化下来,然后绑定到窗体按钮上来执行。这样一来,就能每次只要给筛选条件,点击按钮就能完成筛选,非常方便。

以下就是一段实现高级筛选的VBA代码。

Sub query()    Dim ftrng, crtrng, aimrng As Range    Set ftrng = Range("A2:D7")       '设置需要筛选的数据区域    Set crtrng = Range("G2:J3")      '设置条件区域    Set aimrng = Range("G7:J7")    '设置存放查询结果的区域    Application.CutCopyMode = False    ftrng.AdvancedFilter _      Action:=xlFilterCopy, _      CriteriaRange:=crtrng, _      CopyToRange:=aimrng, _      Unique:=FalseEnd Sub

可以看出,实现高级筛选的代码极其简单,除了定义变量以及设置变量对象之外,核心代码就是一句。再把这个宏绑定到“查询”按钮即可。如果想做更多复杂的查询,那么只需要在上面的代码上稍作扩展即可,这里不再赘述。

查询条件这里可以是单一条件,也可以是多条件,甚至可以是模糊条件。如果条件为空,那么就返回所有数据。

以下就是以单一条件查询“运营部”数据的图例:

标签: #vba如何进行模糊筛选 #vba如何进行模糊筛选模式 #vba 模糊筛选