多数分析软件中的筛选器可以实现部分字段输入后显示下拉筛选框供使用者快速获取需要的选项值。如在tableau中的使用效果是这样的。
在我的实际工作中,这样的操作方式是非常便捷的,在不需要输入全部款 的情况下也可进行筛选,特别是当你只记得款 的部分内容时,这种筛选器表现的尤为省时省力。
软件毕竟不常用,那么如何利用Excel制作出仿软件式模糊查找下拉筛选框呢?
需要用的工具有列表框、文本框、宏代码、SQL。代码部分会在文末分享,所以实际操作中没有想象中的困难。
上述操作完成后,就可以进行额外的“高级操作”。
代码中<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
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!