关键字:关键词筛选;VBA
哈喽,小伙伴们,你们好呀!
先来给大家看个东西,如下图所示,我们只需要输入一个关键词,就可以立刻呈现与之相关的所有内容:
大家是不是很好奇这样的关键词筛选是如何做出来的呢?
如果我告诉你要用到VBA,你会不会就打退堂鼓了?
别怕,跟着文章操作一遍就会发现,VBA其实也是非常简单的。
我们选中B列,鼠标右键插入一列,在A3单元格输入辅助列,接着在A4单元格中输入公式=TEXTJOIN("",TRUE,TEXT(B4,"yyyy-mm-dd"),C4:K4)回车后下拉填充公式。
填充完后将公式结果选择性粘贴为纯文本,通过函数将数据区域里面的值全部组合在一起,这样当我们检索关键词的时候就会以包含的形式查找到数据区域中所有内容了。
因为下面我会使用到录制宏和查看代码,所以现在需要将软件中的开发工具选项卡调出来,在功能区鼠标右键,自定义功能区,找到开发工具勾选后确定就会在功能区看到开发工具选项卡了。
在开发工具选项卡中找到录制宏按钮,点击开始录制宏。宏名称随便取一个名字,也可以是默认的名称,这里我们演示的录制宏叫“筛选”。确定后接下来的所有操作都会被软件记录下来。我们对第三行的标题行数据进行筛选,选择辅助列筛选按钮,文本筛选选择包含,随便输入一个数据中有的词,最后确定就会将数据中涵盖的内容筛选出来了。最后我们从开发工具选项阿卡进入VBE的模块里面就可以看到刚刚录制的宏代码了。
打开代码后会发现其中有两句代码是多余,我们选中Range("B3").Select和Range("A4:A20").Select删除,并且从Field:=1,后面添加空格和短划线是将代码换行。
从模块1中将处理好的代码复制,双击打开sheet1工作表,通用里面选择Worksheet 事件选择change随后将代码粘贴到change过程里面,这里需要将代码Criteria1:="=*小*"更改为Criteria1:="=*" & Target & "*"
到此粗略的关键词筛选功能算是做好了,我们回到文中输入内容查看通过刚刚录制宏修改代码后效果,这是你会发现在任何单元格中输入内容都会触发筛选事件,不仅仅局限于在C1单元格中输入内容,那么想让内容只在C1单元格起作用咋办呢?
我们可以在代码中添加一个IF语句,用来判断输入内容的单元格是C1才执行筛选功能。附上修改后的代码:
_________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
'输入内容的单元格是C1才执行筛选
If Target.Address(0, 0) = "C1" Then
Range("a3").CurrentRegion.AutoFilter Field:=1, _
Criteria1:="=*" & Target & "*", _
Operator:=xlAnd
End If
End Sub
_________________________________________________________
最后成品的效果如下:
怎么样?看完文章后的你是否学会了录制宏的技巧?
回过头来再看VBA是不是也并没有大家想的那么难?
如果跟做的小伙伴有疑问欢迎在评论区里面留言互动,也可以进我们的交流群讨论~
以上就是今天跟大家分享的内容,感谢大家耐心看完,希望大家能够喜欢。
联系客服