分享

Excel实战技巧7:查找并在用户窗体中显示相应的工作表数据

 zhangshoupen 2017-10-19

 

本文在上一篇《Excel实战技巧6:在用户窗体中输入/显示工作表数据》(<>)的基础上进一步增强功能,即添加查询功能。


 

工作表数据库模板

添加定义名称:

ColHeads=OFFSET(wksUserInfo!$A$1,0,0,1,COUNTA(wksUserInfo!$1:$1))

 

用户窗体设计

在原用户窗体界面上,如图1所示,添加专门的查询区,包括1个框架、1个组合框、1个文本框和1个按钮。修改各控件的名称如图1所示,并且设置“查找”按钮控件的tag属性的值为tgFindEnabled属性的值为False

 1

 

运行用户窗体后的效果如下图2所示。

 2

在“查找数据”部分,组合框中填充了工作表wksUserInfo中的标题。用户可以在组合框中选择要搜索的标题列字段,然后在文本框中输入要搜索的数据,单击“查找”按钮后,如果找到数据,那么在下方将显示该条数据记录的详细信息。如果没有选取组合框中的条目,并且没有在文本框中输入内容,那么“查找”按钮不可用。

 

程序代码

初始化用户窗体

在用户窗体的Initialize事件过程中添加一行代码:

Me.cmbFind.List= Application.Transpose(wksUserInfo.Range('ColHeads').Value)

代码中,wksUserInfoData是存放组合框中数据的工作表的对象名称,名称已在本文前面的工作表模板设计中定义。要将一行中的数据放置到组合框中,需要使用Transpose函数转置。

 

启用/禁用“查找”按钮控件

当组合框和文本框中都有数据时,启用“查找”按钮控件,否则禁用该控件。

 

“查找”按钮的Click事件

 

最终的结果

运行后的结果如图3所示。

 3

 

如果查找获得的数据记录有多条,那么上文所示的用户窗体只会显示第1条数据记录信息。想要逐条获取查找到的全部数据记录,可以参照《问与答22:如何找到工作表中满足条件的所有记录并逐条显示?<>来增添相应的功能。



 

本文属原创文章,转载请注明出处。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多