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

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

微软Office LTSC 2021专业增强版 简体中文批量许可版 2024年09月更新

  • 类型:办公软件
  • 大小:2.2GB
  • 语言:简体中文
  • 时间:2024-09-12

查看详情

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动态查询的使用方法,希望大家喜欢,请继续关注风君子博客。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平