在Excel中,Find方法是一个非常方便的工具,可以帮助我们快速定位特定字符或单词在单元格中的位置。使用Find方法可以快速实现单元格查询的功能,只需输入要搜索的内容和搜索范围,就可以迅速定位目标单元格。本文将详细讲解如何在Excel中通过Find方法进行单元格查询,希望能帮助大家提高工作效率。
我们都知道,使用Excel中查询功能,按下键盘Ctrl+F键就可调出查询功能对话框。
其实,在执行此功能的时候就是一些代码在运行,那么使用vba代码如何实现查询呢?
Range对象中的Find方法给我们提供一个很好的解决办法,可以方便地执行表格内容查询功能。
Find相当于Excel中查找与替换对话框所执行的功能。
本节主要介绍如何应用Range对象的Find和FindNext对象。
Find英语意思”查找“,FindNext是查询下一个。
比如,要找一个关键字"潘金莲",那么就用代码:Range.Find "潘金莲"。
Range代表一个范围,就是说要在Range这个范围里找"潘金莲",所以Range就是一个单元格区域对象。
例如:Range("A1:F10").Find "潘金莲"
当然Find参数并是这么简单,其中有若干条件可以设置,比如查询条件,查询方式,大小写区分,向下查询,向上查询,先行后列或行列后行查询等等。
主要参数:
What:必需的,就是要查找的内容,数据类型为可变形,Variant。
Lookin:指定要搜索的数据的类型。xlFormulas 公式; xlValues值。
LookAt:指定是匹配全部搜索文本还是匹配任一部分搜索文本。xlPart 匹配任一部分; xlWhole
匹配全部。
应用以上参数就可写作这样:
Range("A1:F10").Find What:="潘金莲",Lookin:=xlValues,LookAt:=xlPart
查询格式如上代码,并不是我们在vba里要使用的全部正确格式。
严格来说这段代码有一个返回值,如上代码执行之后并没有任何表现。
所以要对代码进行一下调整。
dim R as Range
Set R=Range("A1:F10").Find (What:="潘金莲",Lookin:=xlValues,LookAt:=xlPart)
Msgbox R.Value
这样就会弹出查询到的内容,如果没有找到则返回一个Nothing。
重复查询
结合循环语句Do...While或For Each ...Next等循环语句,可以使用FindNext和FindPrevious进行重复查询。
解释
FindNext:当搜索到达指定的搜索区域末尾时,它会绕到该区域开头位置继续搜索
FindPrevious:当查找到指定查找区域的起始位置时,本方法将环绕至区域的末尾继续搜索
但是还有一个问题,由于它的工作原理,你会得到一个无限循环,也就是说不停地给你弹出查询到的结果。
默认情况下,当把查询范围遍历一个循环之后,Find会再次返回到开始或末尾位置继续查询,没有结束,没完没了。直到你给出一个结束条件。
如此,就必须要对第一次查询的结果,进行位置保存,把第一次找到的单元格地址Address保存到一个变量里,每次执行FindNext或FindPrevious对这个变量进行判断,如果相同就退出循环。
Dim FirstAddress as string
FirstAddress=R.Address'保存第一次查询到的地址
具体参数设置如下图介绍:
本示例做了一个很完整的查询方法。
其工作原理是,对于所选单元格内容进行查询,查询内容为文本框输入的内容(TextBox)。
查询结果以弹框方式显示出来,并且将查询结果的姓名列添加到组合框内(ComboBox)。
增加功能
单击选择组合框,弹出信息全部内容。
这里做了一个动态创建Form对话框以及表单控件功能,并且显示和删除Form表单的功能。
涉及比较多的表单创建定义操作。
当然,我们主要介绍Find功能。
Find示例
选择下拉框ComboBox后弹出查询结果详细信息,如下图。
此过程中自动创建Form表单,关闭后删除表单。
这样的对查询结果有一个很完整的检测方式。
显示Form表单
查询按钮代码
Range对象的Find方法是一个十分有用的功能,学习并掌握它对于VBA编程是一个极大的帮助。
在对数据进行查询过程中有着特别重要的意义。
有时候查询不是目的,查询之后将结果进行处理排序、改变格式、计算等才是真正要执行任务。
那么就需要配合使用其它代码功能对数据进行修饰。
那么更加强大的数据处理就需要学习更多的代码方法来进行操作。
-- END --
欢迎关注、收藏
版权所有Copyright©2021-2022安卓手游市场(www.hcyxsc.com)copyright
如何在Excel中使用Find方法进行单元格查询功能详细讲解
在Excel中,Find方法是一个非常方便的工具,可以帮助我们快速定位特定字符或单词在单元格中的位置。使用Find方法可以快速实现单元格查询的功能,只需输入要搜索的内容和搜索范围,就可以迅速定位目标单元格。本文将详细讲解如何在Excel中通过Find方法进行单元格查询,希望能帮助大家提高工作效率。
NO.1我们都知道,使用Excel中查询功能,按下键盘Ctrl+F键就可调出查询功能对话框。
其实,在执行此功能的时候就是一些代码在运行,那么使用vba代码如何实现查询呢?
Range对象中的Find方法给我们提供一个很好的解决办法,可以方便地执行表格内容查询功能。
Find相当于Excel中查找与替换对话框所执行的功能。
本节主要介绍如何应用Range对象的Find和FindNext对象。
NO.2Find英语意思”查找“,FindNext是查询下一个。
比如,要找一个关键字"潘金莲",那么就用代码:Range.Find "潘金莲"。
Range代表一个范围,就是说要在Range这个范围里找"潘金莲",所以Range就是一个单元格区域对象。
例如:Range("A1:F10").Find "潘金莲"
当然Find参数并是这么简单,其中有若干条件可以设置,比如查询条件,查询方式,大小写区分,向下查询,向上查询,先行后列或行列后行查询等等。
主要参数:
What:必需的,就是要查找的内容,数据类型为可变形,Variant。
Lookin:指定要搜索的数据的类型。xlFormulas 公式; xlValues值。
LookAt:指定是匹配全部搜索文本还是匹配任一部分搜索文本。xlPart 匹配任一部分; xlWhole
匹配全部。
应用以上参数就可写作这样:
Range("A1:F10").Find What:="潘金莲",Lookin:=xlValues,LookAt:=xlPart
查询格式如上代码,并不是我们在vba里要使用的全部正确格式。
严格来说这段代码有一个返回值,如上代码执行之后并没有任何表现。
所以要对代码进行一下调整。
dim R as Range
Set R=Range("A1:F10").Find (What:="潘金莲",Lookin:=xlValues,LookAt:=xlPart)
Msgbox R.Value
这样就会弹出查询到的内容,如果没有找到则返回一个Nothing。
重复查询
结合循环语句Do...While或For Each ...Next等循环语句,可以使用FindNext和FindPrevious进行重复查询。
解释
FindNext:当搜索到达指定的搜索区域末尾时,它会绕到该区域开头位置继续搜索
FindPrevious:当查找到指定查找区域的起始位置时,本方法将环绕至区域的末尾继续搜索
但是还有一个问题,由于它的工作原理,你会得到一个无限循环,也就是说不停地给你弹出查询到的结果。
默认情况下,当把查询范围遍历一个循环之后,Find会再次返回到开始或末尾位置继续查询,没有结束,没完没了。直到你给出一个结束条件。
如此,就必须要对第一次查询的结果,进行位置保存,把第一次找到的单元格地址Address保存到一个变量里,每次执行FindNext或FindPrevious对这个变量进行判断,如果相同就退出循环。
Dim FirstAddress as string
dim R as Range
Set R=Range("A1:F10").Find (What:="潘金莲",Lookin:=xlValues,LookAt:=xlPart)
FirstAddress=R.Address'保存第一次查询到的地址
具体参数设置如下图介绍:
NO.3本示例做了一个很完整的查询方法。
其工作原理是,对于所选单元格内容进行查询,查询内容为文本框输入的内容(TextBox)。
查询结果以弹框方式显示出来,并且将查询结果的姓名列添加到组合框内(ComboBox)。
增加功能
单击选择组合框,弹出信息全部内容。
这里做了一个动态创建Form对话框以及表单控件功能,并且显示和删除Form表单的功能。
涉及比较多的表单创建定义操作。
当然,我们主要介绍Find功能。
Find示例
选择下拉框ComboBox后弹出查询结果详细信息,如下图。
此过程中自动创建Form表单,关闭后删除表单。
这样的对查询结果有一个很完整的检测方式。
显示Form表单
NO.4查询按钮代码
NO.5Range对象的Find方法是一个十分有用的功能,学习并掌握它对于VBA编程是一个极大的帮助。
在对数据进行查询过程中有着特别重要的意义。
有时候查询不是目的,查询之后将结果进行处理排序、改变格式、计算等才是真正要执行任务。
那么就需要配合使用其它代码功能对数据进行修饰。
那么更加强大的数据处理就需要学习更多的代码方法来进行操作。
-- END --
欢迎关注、收藏