EXCEL仿软件制作模糊查找下拉筛选框

多数分析软件中的筛选器可以实现部分字段输入后显示下拉筛选框供使用者快速获取需要的选项值。如在tableau中的使用效果是这样的。

EXCEL仿软件制作模糊查找下拉筛选框

在我的实际工作中,这样的操作方式是非常便捷的,在不需要输入全部款号的情况下也可进行筛选,特别是当你只记得款号的部分内容时,这种筛选器表现的尤为省时省力。

软件毕竟不常用,那么如何利用Excel制作出仿软件式模糊查找下拉筛选框呢?

需要用的工具有列表框、文本框、宏代码、SQL。代码部分会在文末分享,所以实际操作中没有想象中的困难。

使用时只需要插入列表框、文本框控件,再将文末的代码放置在相应的Sheet宏编辑器内。

EXCEL仿软件制作模糊查找下拉筛选框

上述操作完成后,就可以进行额外的“高级操作”。

EXCEL仿软件制作模糊查找下拉筛选框

代码中<select distinct 名称 from [清单$] where 名称>需要修改的部分是“名称”和“清单”。其中名称为本例中的款号,清单为需要查找的款号所在的工作表。

本例的全部代码如下:

Private Sub TextBox1_GotFocus()TextBox1.Text = ""End SubPrivate Sub TextBox1_Change()Dim arr() As Variant    ListBox1.Visible = True'sql基本模式    Set conn = CreateObject("Adodb.Connection")    conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;extended properties=excel 12.0;data source=" & ThisWorkbook.Path & "/" & ThisWorkbook.Name    Sql = "select distinct 名称 from [清单$] where 名称  like '%" & TextBox1.Text & "%'"    Set rst = conn.Execute(Sql)'sql基本模式语句结束    ListBox1.Clear    On Error Resume Next    arr = rst.getrows    ListBox1.List() = Application.Transpose(arr)    Set rs = Nothing    conn.Close    If ListBox1.ListCount < 1 Then    ListBox1.Visible = False    End IfEnd SubPrivate Sub ListBox1_Click()    TextBox1.Value = ListBox1.Value    ListBox1.Visible = FalseEnd Sub

来源:Talk数据

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月12日
下一篇 2022年1月12日

相关推荐