问:工作表中有很多关于同名人的信息。如果您想在用户表单中设置查询,在您输入个人姓名后会显示多少条信息,您可以逐个显示。
答:以下是详细的实施过程。
在VBE中插入“用户表单”,并将其命名为UInfo。在表单中放置“标签”、“文本框”和“按钮”控件,并分别命名这些控件,如下图所示。
在用户表单模块中输入以下代码:
描述:
声明模块级变量。
用于传递所有找到的单元格和当前显示的单元格。
描述:
初始化用户表单。
用找到的第一条记录填充用户表单中的相应控件。
描述:
设置上一个按钮和下一个按钮。
在用户表单控件中填写相应的记录。
同时显示记录的数量。
描述:
当显示的记录在第一条或最后一条记录中时,禁用相应的按钮;在中间,启用相应的按钮。
将标准模块插入到VBE中,并输入以下代码:
描述:
首先,使用Find方法根据搜索条件查找所有符合条件的记录,并将其分配给相应的Range变量。然后,创建一个用户表单,并将表示找到的所有记录的变量传递给用户表单。
为了确保引用的记录区域以与工作表中相同的顺序出现,在Find方法中使用了参数After,并且将其值设置为搜索区域中的最后一个单元格,即从搜索区域中的第一个单元格开始搜索。
《Excel VBA解读(41):藏得再好也能找到——使用Find方法实现查找》中详细讲解了Find方法的语法和应用实例。《经典代码解析2:查找并获取所查找内容的全部单元格》中详细说明了使用Find方法获取所有满足相同条件的单元格的原理和代码。
至此,用户表单和相应的代码都完成了。
运行ShowInfo进程,弹出如下对话框,询问搜索名称:
进入后,点击【确定】,出现下图所示的用户表单:
您可以看到正在查找的记录数,即当前的记录数。点击按钮,逐一显示记录信息。