如何在VBA中使用查找函数(6个例子)

  • Share This
Hugh West

最重要和最广泛使用的函数之一,我们在 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应用程序中使用查找功能。 你有任何问题吗? 请随时向我们提问。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.