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

如何在Excel中制作出仿软件式模糊查找下拉筛选框?-天天办公网

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

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

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

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

如何在Excel中制作出仿软件式模糊查找下拉筛选框?-天天办公网

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

如何在Excel中制作出仿软件式模糊查找下拉筛选框?-天天办公网

代码中

本例的全部代码如下:

Private Sub TextBox1_GotFocus()
TextBox1.Text = ""
End Sub
Private 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 If
End Sub
Private Sub ListBox1_Click()
TextBox1.Value = ListBox1.Value
ListBox1.Visible = False
End Sub