前言:
现在看官们对“关键字搜索代码”可能比较关注,我们都需要分析一些“关键字搜索代码”的相关资讯。那么小编在网上网罗了一些有关“关键字搜索代码””的相关内容,希望朋友们能喜欢,同学们一起来学习一下吧!各位朋友,你们好。
我分享过的两个实用的管理工具:
一个是材料出入库管理工具【材料出入库管理工具】;
一个是通讯录管理工具【通讯录管理工具】。
在这两个工具中,都用到了一种多关键字搜索的方式,不少朋友反馈这个多关键字搜索使用起来非常实用、方便。现在我将实现多关键字搜索的思路和代码和你们分享下。
此思路和方式是我自己摸索出来的,代码不一定是最简洁的,方法也不一定是最高效的。分享出来,抛砖引玉,希望各位朋友共同学习和优化。
当然,如要你需要在你的表格中实现多关键字搜索,可以直接把代码拿过去使用,只修改数据赋值部分Arr数据区域和Str查询字段两个就可以了。获取到结果后,再根据实际情况设置列表框的属性。
需要此文件的朋友,可以关注我,然后通过私信发送关键字【关键字搜索】获取文件。文中所有代码都有注释,只要你能看明白,就可以修改成自己所要的。
效果演示(演示中,多个关键字之间要用空格隔开)思路如下:一、申明变量及变量赋值
申明变量部分,每个变量做什么,都有详细注释,大家可以结合后面的代码看;
【Arr数组】赋值:将工作表的数据区域赋值给数组Arr,用于后续的分析和判断(此处用数组来装载数据,是为了提高数据的运行和处理效率,因为在内存中运算数据要比从工作表中提取要快很多)。
重新申明结果储存数组【Tmp】的大小,此处重新申明的数组大小,设置成了和Arr一样大,因为查询结果未知,设置成一样大,在关键字为空的时候,才能显示出完整的数据,且不会出现空行。
二、对查询关键字进行分析判断
此部分共分为五个阶段:
1、将需要查询的字段,用【&】符号连接起来,赋值给变量【Str】;
2、对关键字进行处理:
如果关键字中有空格,就判断为多个关键字,用Split函数,以空格为分隔符,将多个关键字拆分,并将拆分结果赋值给数组Tmp1;如果关键字中无空格,则查找的为单个关键字。
3、关键字搜索:
①单个关键字:就直接用INSTR函数在STR中是否存在关键字;
②多个关键字:使用For循环,逐一对关键进行循环,然后用Instr函数对每个关键字进行判断,判断Str字符串中是否包含所此关键字。
4、对搜索结果进行判断:
①当Str中有搜索关键字时,计数器【x】自动加1,直到所有关键字全部循环判断完成;
②关键字循环完成后,判断计数器【x】的值是否与关键字的个数相同;
③如果【x】的值和关键字个数一样,则表示当前【STR】字符串中包含所有关键字,即此条【STR】数据符合搜索要求;
④如果【x】的值小于关键字个数,则表示当前【Str】字符串中未包含所有的关键字,即此条【Str】数据不符合搜索要求。
5、将此条符合查询结果的数据写入储存数组【Tmp】中,然后执行下一条数据循环,直到所有数据循环完成,并将所有符合查找结果的数据记录在Tmp数组中。
三、对查询结果的处理
设置关键字时,由于设置申明的【Tmp】数组比查询结果要大,所以在数组中会存在一些空值,显示到列表框中就是空行,所以需要将查询结果处理下,只将有效数据提取出来。
到此,搜索过程已完成。
四、将最终结果写入列表框
但是现在搜索结果仅仅是储存在内存中,还需要将显示出来,比如别入工作表中或者Listbox列表框中,或者Listview列表框中。本例中时将查询结果写入Listbox列表框中,所以需要对列表框进行一些设置。
五、代码移植和修改
如果要将代码用于其他地方,需要对代码做修改,仅需要修改以下三个地方:
1、变量赋值中的数组Arr,将实际数据区域赋值给Arr即可;
2、关键字查询中的Str字符串,根据你的实际情况,将需要查询的字段合并即可。
3、获取到查询结果后,还需要根据实际数据情况设置listbox的参数,比如列表框列数、列表框列宽等。
我是上班下班,因为爱好办公软件、喜欢分享。所以来到这里将我的学习心得和踩过的一些坑,和大家分享,希望大家学习我成功的经验,避开我踩过的坑。我和你们一起进步。
好了,今天就聊到这里,感谢各位朋友的关注和支持。
如果你喜欢我分享的内容,请点个赞支持下;
如果你觉得我分享的内容对你有帮助,可以关注我;
如果要看我以前分享过的好玩的内容,大家可以去我的主页查看历史文章。
标签: #关键字搜索代码