首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用VBA实现工作表数据的动态查询

这里利用VBA窗体设计并实现工作表数据的动态查询。

1.当我们点击“动态加载并查询”时,将工作表数据加载到列表框中。同时,我们可以下拉选择查询字段

2.当我们在文本框实时输入时,列表框将动态显示满足条件的数据

3.当文本框内容全部清除时,列表框将显示工作表的全部数据

实现效果GIF

UI设计

主要使用到ComboBox 、TextBox和ListView控件。

1.ComboBox控件:用于选择“查找字段”,名称设置为cbbField,Style属性设置为:2-fmStyleDropDownList

2.TextBox控件:用于输入查找内容,名称设置为tbSearch

3.ListView控件:用于显示全部或满足条件的工作表数据,名称和相关属性均默认

主界面设计

VBA代码

1.定义全局变量-arr数组

'用于保存工作表数据Dim arr() As Variant

2.窗体初始化事件

Private Sub UserForm_Initialize() cbbField.Value = Cells(1, 2) '将工作表的单元格数据赋值给arr arr = Range("a1").CurrentRegion Dim j As Integer '从第一列到最后一列 For j = 1 To UBound(arr, 2) '将查找字段添加至复选框 cbbField.AddItem Cells(1, j) '给ListView控件增加标题行 ListView1.ColumnHeaders.Add , , Cells(1, j), 60 Next With ListView1 .View = lvwReport .Gridlines = True End With Dim i As Integer For i = 2 To UBound(arr, 1) Dim item As ListItem Set item = ListView1.ListItems.Add item.Text = arr(i, 1) For j = 2 To UBound(arr, 2) item.SubItems(j - 1) = arr(i, j) Next Next tbSearch.SetFocusEnd Sub

3.TextBox控件的Change事件

Private Sub tbSearch_Change() '清空ListView的所有项目 ListView1.ListItems.Clear Dim i As Integer, j As Integer For i = 2 To UBound(arr, 1) If arr(i, cbbField.ListIndex + 1) Like tbSearch.Text & "*" Then Dim item As ListItem Set item = ListView1.ListItems.Add item.Text = arr(i, 1) For j = 2 To UBound(arr, 2) item.SubItems(j - 1) = arr(i, j) Next End If NextEnd Sub

文件获取方式

点击屏幕下方的「赞」

和「在看」

>>推荐阅读<<

★★★查看更多的内容★★★

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OmX9MuAYnvceAKnwR7be1nmA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券