发布网友 发布时间:2024-10-06 09:55
共1个回答
热心网友 时间:2024-10-24 13:24
Q:工作表中有很多同名人员的信息,想要在用户窗体中设置查询,输入人员姓名后,显示其有多少条信息,并且可以逐条显示这些信息。
A:下面是详细的实现过程。
在VBE中插入“用户窗体”并命名为UInfo,在窗体中放置“标签”、“文本框”和“按钮”控件,并分别给这些控件命名,如下图所示。
在用户窗体模块中输入下列代码:
说明:
声明模块级变量
用来传递已找到的全部单元格,以及当前显示的单元格
说明:
初始化用户窗体
使用查找到的第一条记录填充用户窗体中的相应控件
说明:
设置前一条按钮和后一条按钮
在用户窗体控件中填充相应的记录
同时显示记录数
说明:
当显示的记录在第1条或者在最后一条时,禁用相应的按钮;在中间时,启用相应的按钮。
在VBE中插入一个标准模块,输入下列代码:
说明:
首先使用Find方法根据查找条件查找到满足条件的全部记录,并将其赋值给相应的Range变量。然后,创建用户窗体并将代表找到的全部记录的变量传递给用户窗体。
为了确保引用的记录区域与工作表中出现的顺序相同,在Find方法中使用了参数After并将其值设置为搜索区域的最后一个单元格,即从搜索区域的第一个单元格开始查找。
在《Excel VBA解读(41):藏得再好也能找到——使用Find方法实现查找》中详细解了Find方法的语法及应用示例。在《经典代码解析2:查找并获取所查找内容的全部单元格》中,详细解了使用Find方法获取满足相同条件的所有单元格的原理及代码。
至此,用户窗体及相应的代码全部制作完成。
运行ShowInfo过程,弹出下列对话框,要求输入查找的姓名:
输入完后,单击“确定”,即显示下图所示的用户窗体:
可以看到查找的记录数,当前在第几条,单击按钮即可逐一显示记录信息。