本文在上一篇《Excel实战技巧6:在用户窗体中输入/显示工作表数据》(<>)的基础上进一步增强功能,即添加查询功能。
工作表数据库模板 添加定义名称: ColHeads:=OFFSET(wksUserInfo!$A$1,0,0,1,COUNTA(wksUserInfo!$1:$1))
用户窗体设计 在原用户窗体界面上,如图1所示,添加专门的查询区,包括1个框架、1个组合框、1个文本框和1个按钮。修改各控件的名称如图1所示,并且设置“查找”按钮控件的tag属性的值为tgFind,Enabled属性的值为False。 图1
运行用户窗体后的效果如下图2所示。 图2 在“查找数据”部分,组合框中填充了工作表wksUserInfo中的标题。用户可以在组合框中选择要搜索的标题列字段,然后在文本框中输入要搜索的数据,单击“查找”按钮后,如果找到数据,那么在下方将显示该条数据记录的详细信息。如果没有选取组合框中的条目,并且没有在文本框中输入内容,那么“查找”按钮不可用。
程序代码 初始化用户窗体 在用户窗体的Initialize事件过程中添加一行代码: Me.cmbFind.List= Application.Transpose(wksUserInfo.Range('ColHeads').Value) 代码中,wksUserInfoData是存放组合框中数据的工作表的对象名称,名称已在本文前面的工作表模板设计中定义。要将一行中的数据放置到组合框中,需要使用Transpose函数转置。
启用/禁用“查找”按钮控件 当组合框和文本框中都有数据时,启用“查找”按钮控件,否则禁用该控件。
“查找”按钮的Click事件
最终的结果 运行后的结果如图3所示。 图3
如果查找获得的数据记录有多条,那么上文所示的用户窗体只会显示第1条数据记录信息。想要逐条获取查找到的全部数据记录,可以参照《问与答22:如何找到工作表中满足条件的所有记录并逐条显示?》(<>)来增添相应的功能。 本文属原创文章,转载请注明出处。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。 |
|
来自: zhangshoupen > 《我的微表》