如何在Excel中使用VBA查找精确匹配(5种方法)

  • Share This
Hugh West

如果你正在寻找一些最简单的方法来找到一个完全匹配的使用 VBA 因此,让我们开始阅读这篇文章,了解寻找完全匹配的方法。

下载工作手册

VBA查找精确匹配.xlsm

使用VBA查找完全匹配的5种方法

我使用了以下表格,其中有一些学生的成绩记录。 我将在此表格的帮助下解释不同的方法,以找到精确的匹配。 VBA。

为此,我使用了Microsoft Excel 365版本,你可以根据自己的方便使用任何其他版本。

方法一:在一个单元格范围内寻找完全匹配的结果

如果你想找到一个完全匹配的字符串,如一个学生的名字,然后找到这个学生的单元格位置,那么你可以按照这个方法来做。

在这里,我将找到一个完全匹配的学生,名为 "Joseph Micahel" .

步骤-01 :

转到 开发商 标签>>。 视觉基础 选项

然后,在 Visual Basic编辑器 将打开。

转到 插入 标签>>。 模块 选项

在这之后,一个 模块 将被创建。

步骤-02 :

➤ 写出以下代码

 Sub searchtxt() Dim rng As Range Dim str As String Set rng = Sheets("exact match").Range("B5:B10").Find("Joseph Michael", LookIn:=xlValues) If Not rng Is Nothing Then str = rng.Address MsgBox (rng & " in " & str) End If END Sub 

在这里。 "完全匹配" 是工作表的名称,而 "B5:B10" 是学生的姓名范围,和 "约瑟夫-迈克尔" 是要查出的学生的名字。

rng 被声明为一个范围对象,并且 弦外之音 作为一个字符串变量来存储搜索到的项目的地址。

ǞǞǞ 基金会 语句将把项目的地址分配给 弦外之音 变量。

➤按 F5

结果 :

之后,你将得到以下内容 信息箱 包含学生的单元格位置,名为 "约瑟夫-迈克尔" .

阅读更多。 在Excel中用VBA在一个范围内查找:包括精确和部分匹配

方法-2:使用VBA找到完全匹配的内容并将其替换掉

我将告诉你如何找到指定学生的名字,然后用另一个名字替换,因为不知何故,这个名字被写在这里。 你可以 找到你想要的字符串并替换它 遵循这个方法。

步骤-01 :

➤关注 步骤-01 方法一

 Sub FindandReplace() Dim rng As Range Dim str As String With Worksheets("find&replace").Range("B5:B10") Set rng = .Find("Donald Paul", LookIn:=xlValues) If Not rng Is Nothing Then str = rng.Address Do rng.Value = Replace(rng.Value, "Donald Paul", "Henry Jackson") Set rng = .FindNext(rng) Loop while Not rng Is Nothing End If End With End Sub 

在这里。 "查找&替换" 是工作表的名称,而 "B5:B10" 是学生的姓名范围,和 "唐纳德-保罗" 是要找出的学生的名字,然后是 "亨利-杰克逊" 将是学生的名字,而不是以前的名字。

语句将避免在每个语句中重复这段代码。

ǞǞǞ 基金会 语句将把项目的地址分配给 弦外之音 变量和 哆啦A梦 循环将替换所有出现的搜索词。

➤按 F5

结果 :

之后,你会得到新学生的名字为 "亨利-杰克逊" .

方法-3:寻找精确匹配和区分大小写的匹配

如果你想找到一个区分大小写的匹配,那么就按照这个方法。 这里,我有两个相似的名字,但在大小写上有区别,根据大小写,我将替换最后一个学生的名字。

步骤-01 :

➤关注 步骤-01 方法一

 Sub exactmatch() Dim rng As Range Dim str As String With Worksheets("case-sensitive").Range("B5:B10") Set rng = .Find("Donald Paul", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True) If Not rng Is Nothing Then str = rng.Address Do rng.Value = Replace(rng.Value, "Donald Paul", "Henry Jackson" ) Set rng = .FindNext(rng) Loop While Not rng Is Nothing End If END With 结束子 

在这里。 "大小写敏感" 是工作表的名称,而 "B5:B10" 是学生的姓名范围,和 "唐纳德-保罗" 是要找出的学生的名字,然后是 "亨利-杰克逊" 将是学生的名字,而不是以前的名字。

语句将避免在每个语句中重复这段代码。

ǞǞǞ 基金会 语句将把项目的地址分配给 弦外之音 变量和 哆啦A梦 循环将替换所有出现的搜索词。

➤按 F5

结果 :

现在,根据该案,该学生的名字将被改成 "亨利-杰克逊" .

类似的阅读。

  • 如何在Excel中使用VBA查找单元格中的字符串(2种方法)
  • VBA在Excel中查找列的方法(7种方法)
  • 如何在Excel中用VBA查找字符串(8个例子)

方法四:使用InStr函数

假设,你想匹配 通过 不对应 到学生的名字,取决于 结果栏 其中 通过 失败 要想在这个字符串中找到 结果栏 并写下 "通过" 状态栏 对于已经通过考试的学生,你可以用 InStr函数 .

步骤-01 :

➤关注 步骤-01 方法一

 Sub Checkstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.Value, "Pass")> 0 Then cell.Offset(0, 1).Value = " Passed" Else cell.Offset(0, 1).Value = " " End If Next cell End Sub 

这里,单元格范围是 C5:C10 这就是 结果栏

InStr(cell. value, "Pass")> 0 是指数字大于零的情况(当单元格中含有 "通过" ),那么下面一行将继续进行,并在相邻的单元格中给出输出结果为 通过 .

如果条件变成假的,意味着一个单元格不包含任何 "通过" 那么,下面的线 ELSE 将执行,并在相邻的单元格中给出输出值为 空白 .

这个循环将对每个单元格继续进行。

➤按 F5

结果 :

然后,你会得到 "通过" 已通过的学生的地位。

方法五:寻找精确匹配并提取数据

如果你想提取一个名为 "A "的学生的相应数据 "迈克尔-詹姆斯" 那么你可以按照这个方法。

步骤-01 :

➤关注 步骤-01 方法一

 Sub Extractdata() Dim lastusedrow As Long Dim i As Integer, icount As Integer lastusedrow = ActiveSheet.Range("B100").End(xlUp).Row For i = 1 To lastusedrow If InStr(1, Range("B" & i), "Michael James" )> 0 Then icount = icount + 1 Range("E" & icount & ":G" & icount) = Range("B" & i & ":D" & i) .Value End If Next i END Sub 

在这里,我使用了 B100 作为 活跃板块范围 (你可以根据你的用途使用任何范围)。

InStr(1, Range("B" & i), "Michael James" )> 0 是检查列中的单元格是否为 B 包含 迈克尔-詹姆斯 .

Range("E" & icount & ":G" & icount) 是你希望输出数据的范围,而 Range("B" & i & ":D" & i).value 将给出列中的值 B D .

➤按 F5

结果 :

之后,你会得到以下提取的有名字的学生的数据 迈克尔-詹姆斯 .

练习部分

为了方便自己的练习,我们提供了一个 实践 的工作表中,像下面这样,在一个名为 实践 .请你自己去做。

总结

在这篇文章中,我试图介绍使用最简单的方法来寻找完全匹配的数据。 VBA 希望你会发现它很有用。 如果你有任何建议或问题,欢迎与我们分享。

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.