excel

关注公众号 jb51net

关闭
软件教程 > 办公软件 > excel >

搜索框加持 即时呈现查询结果! Excel动态查询新玩法

脚本之家

之前我们介绍过利用VBA窗体设计并实现工作表数据的动态查询(利用VBA实现工作表数据的动态查询)。在这一篇,我们将直接在Excel工作表上,实现动态筛选查询并即时显现。实现效果如下:

1.我们可以在B1单元格选择查找字段;

2.当我们在E1单元格的搜索框输入时,工作表数据会自动筛选并即时呈现;当清空搜索框内容时,则取消筛选状态并显示全部数据。

实现效果GIF

实现步骤

1.查找字段下拉框

为B1单元格增加数据验证,验证条件设置“允许”为序列,“来源”为=$3:$3

增加数据验证

2.搜索文本框

依次选择开发工具--->插入--->ActiveX控件,点击“文本框”控件,并拖动放置在E1单元格。

插入“文本框”控件

3.TextBox控件的Change事件

我们双击“文本框”控件,即可直接进入Change事件的VBA编辑区界面。

Private Sub TextBox1_Change()
    '设置在搜索之前,先选择查找字段
    If Range("B1").Value = "" Then
        TextBox1.Text = ""
        Exit Sub
    End If
    '获取工作表数据的筛选列号
    Dim fieldColumn As Integer
    '选中第三行数据
    Range(Range("a3"), Range("a3").End(xlToRight)).Select
    fieldColumn = Selection.Find(What:=Range("B1").Value, LookAt:=xlWhole).Column
    '筛选搜索的数据
    Selection.AutoFilter
    ActiveSheet.Range("A3").CurrentRegion.AutoFilter Field:=fieldColumn, Criteria1:="*" & TextBox1.Text & "*"
    '激活文本框
    TextBox1.Activate
    '当文本框内容为空,取消筛选状态
    If TextBox1.Text = "" Then
        ActiveSheet.Range("A3").CurrentRegion.AutoFilter
    End If
End Sub

以上就是 Excel动态查询的使用方法,希望大家喜欢,请继续关注脚本之家。