Table of contents
最重要和最广泛使用的函数之一,我们在 Visual Basic应用(VBA) 在这篇文章中,我将告诉你如何使用 查找功能 适当的例子和插图来说明Excel的使用。
下载实践工作手册
在Excel.xlsm的VBA中查找函数在VBA中使用FIND函数的6个快速例子
这里我们有一个数据集,其中有 书名,作者 和 价格 一个叫马丁书店的书店的一些书。
今天,我们的目标是要看到各种类型的用途。 查找功能 的 VBA 从这个数据集上看。
1.在VBA中使用无参数的查找函数
你可以使用 查找功能 的 VBA 不带参数。
然后它将在一个单元格范围内搜索一个特定的值,并返回它找到的第一个匹配值。
让我们搜索一下这个名字 "P. B. Shelly" 栏目中的 作者 ( C4:C13 ).
的线。 查找功能 将是。
Set cell = Range("C4:C17").Find("P. B. Shelly")
完整的 VBA代码 将是。
⧭ VBA代码。
Sub Find() Set cell = Range("C4:C17").Find("P. B. Shelly") MsgBox cell.Address End Sub
⧭ 输出。
它产生了一个 宏观 叫做 查找 如果你运行该宏,它将返回 $C$6 ,第一个单元格地址的名称为 P. B. Shelly .
阅读更多。 在Excel中用VBA在一个范围内查找:包括精确和部分匹配
2.在VBA中应用带有After参数的查找功能(从特定单元格开始查找)。
你可以使用 之后 参数与 查找功能 在 VBA 然后,它将开始从一个范围内的单元格下面搜索一个值。
例如,让我们开始搜索这个名字 "P. B. Shelly" 从下面的单元格 C6 .
这一行代码将是。
Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6")
而完整的 VBA代码 将是。
⧭ VBA代码。
Sub Find() Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6")) MsgBox cell.Address End Sub
⧭ 输出。
它将返回 $C$13 因为它从单元格下面开始搜索 C6 ,这是来自细胞 C7 所以它得到了 P. B. Shelly 在细胞中 C13 首先。
阅读更多。 如何在Excel中使用VBA查找单元格中的字符串
3.在VBA中运行 "查找 "函数,并环绕后参数(以循环方式搜索一个值)。
ǞǞǞ 之后 参数与 查找功能 以循环方式搜索一个值
也就是说,它从一个范围内的单元格下面开始搜索,在范围内完成搜索,然后再次从范围的顶部开始。
例如,让我们开始搜索这个名字 "约翰-济慈" 从下面的单元格 C8 使用 之后 参数。
这一行代码将是。
Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))
而完整的 VBA代码 将是。
⧭ VBA代码。
Sub Find() Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8")) MsgBox cell.Address End Sub
⧭ 输出。
它将返回 $C$7 因为它从单元格下面开始搜索 C8 ,这是来自细胞 C9 .
它没有找到任何东西,直到细胞 C13 因此,它再次从单元格开始 C4 并在单元格中找到一个 C7 .
类似的阅读。
- 如何在Excel中用VBA查找字符串(8个例子)
- 在Excel中使用VBA查找精确匹配(5种方法)
- 如何使用VBA查找和替换(11种方法)
4.利用VBA中的查找功能与LookAt参数(用于精确或部分匹配)。
你可以使用 查找功能 在 VBA 与 观察 参数。
使用 LookAt = xlWhole 为一个 准确 匹配,以及 LookAt=xlPart 对于一个 部分 匹配。
例如,让我们试着找出是否有任何书的名字是 "颂歌" 在 书名 栏目( B4:B13 ).
如果我们用 xlWhole 在这行代码中。
Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)
输出将显示一个错误,因为它不会找到任何 确实 匹配。
但如果你使用。
Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)
然后它将返回 $B$9 因为有一本书的名字是 "颂歌" 在它的细胞中 B7 献给夜莺的颂歌》。
因此,完整的代码为 部分 匹配是。
⧭ VBA代码。
Sub Find() Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart) MsgBox cell.Address End Sub
5.在VBA中用SearchDirection参数操作Find函数(指定搜索方向)。
你也可以使用 查找功能 在 VBA 与 搜索方向 参数。
使用 搜索方向 = xlNext 用于搜索来自 从上到下 .
而且 搜索方向 = xlPrevious 用于搜索来自 从下到上 .
例如,让我们试着找到作者 Elif Shafak 列中的 作者 ( C4:C13 ).
如果我们用 xlNext 在这行代码中。
Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)
然后它将返回 $C$5 .
但如果你使用。
Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)
然后它将返回 $C$11 .
因此,搜索的完整代码来自 从下到上 是。
⧭ VBA代码。
Sub Find() Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious) MsgBox cell.Address End Sub
6.VBA中带有MatchCase参数的查找功能(用于大小写敏感或不敏感的匹配)。
最后,你可以使用 查找功能 与 MatchCase 参数。
使用 MatchCase = True 对于一个 区分大小写 匹配 , 和 MatchCase=False 对于一个 不区分大小写 匹配。
例如,让我们尝试找到这本书 "母亲" 在 书名 栏目( B4:B13 ).
如果我们在这行代码中使用True。
Set cell = Range("B4:B13").Find("mother", MatchCase:=True)
输出将显示一个错误,因为它不会找到任何匹配。
但如果你使用。
Set cell = Range("B4:B13").Find("mother", MatchCase:=False)
然后它将返回 $B$9 因为有一本书叫 "母亲" 在细胞中 B8 .
因此,完整的代码为 不区分大小写 匹配是。
⧭ VBA代码。
Sub Find() Set cell = Range("B4:B13").Find("Mother", MatchCase:=False) MsgBox cell.Address End Sub
总结
使用这些方法,你可以在Visual Basic应用程序中使用查找功能。 你有任何问题吗? 请随时向我们提问。