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

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

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

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

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

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

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

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

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

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

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

本例的全部代码如下:

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

© 版权声明

相关文章

暂无评论

none
暂无评论...