如何在Excel中用VBA查找字符串(8个例子)

  • Share This
Hugh West

实施 VBA 是在Excel中运行任何操作的最有效、最快速、最安全的方法。 在这篇文章中,我们将向你展示如何在另一个给定的字符串中使用 VBA 在Excel中。

下载实践模板

你可以从这里下载免费的练习Excel模板。

用VBA在String.xlsm中查找

InStr函数

Microsoft Excel有一个内置的函数,叫做 InStr函数 来查找特定字符串在一个给定的字符串中的位置。

通用语法。

InStr([开始], string1, string2, [比较])

在这里。

论点 必备/可选 定义
开始 可选 搜索的起始位置。
  • 在默认情况下, 术语 所以,如果你想的话,你可以把它留空。
绳子1 需要 要搜索的字符串,主要字符串。
弦乐2 需要 要在主要字符串中搜索的字符串。
比较 可选 ǞǞǞ 术语 函数默认是区分大小写的。 但如果你想运行一个不区分大小写的 术语 这个参数可以是以下值。
  • vbBinaryCompare -> 执行二进制比较,返回值为0
  • vbTextCompare -> 执行文本比较,返回值为1
  • vbDatabaseCompare -> 执行数据库比较,返回值为2

在默认情况下。 术语 需要 vbBinaryCompare 作为比较参数。

使用VBA查找给定字符串中特定字符串位置的8个简单例子

让我们看看一些简单的例子,用以下方法获得某些字符串在给定字符串中的位置 VBA .

1.通过VBA查找字符串中的文本位置

下面是一个例子 术语 来查找一个文本在字符串中的位置。

  • 新闻 Alt + F11 在你的键盘上,或进入标签 开发人员 -> Visual Basic 打开 Visual Basic编辑器 .

  • 在弹出的代码窗口中,从菜单栏中,点击 插入-> 模块 .

  • 现在在代码窗口中,写一个简单的 术语 的程序中。 VBA子程序 (见下文)。
 Sub INSTR_Example() MsgBox InStr("幸福是一种选择", "选择") End Sub 

你的代码现在可以运行了。

  • 新闻 F5 在你的键盘上选择"",或从菜单栏中选择 运行-> 运行Sub/UserForm 你也可以直接点击 小的播放图标 子菜单栏中的 "运行宏"。

你会看到,弹出的信息框会给你一个 声明位置的数字 你想检查的文本的。

解释一下。

我们的主要字符串," 幸福是一种选择 "是一个21个字母的句子(有空格),我们想找到文本""的位置。 选择 该字符串中的""。 文本" 选择 "从主弦的第16位开始,因此我们得到了数字 16 作为我们在消息框中的输出。

2.用VBA从字符串的特定位置查找文本

现在我们来看看,如果我们想从某个数字中获取位置,会发生什么。

  • 与之前的方法一样,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口中,写一个简单的 术语 如上图所示的程序,根据你要计算文本的位置,在start参数中传递数值。
 Sub INSTR_Example() MsgBox InStr(17, "Happiness is a choice", "选择") End Sub 

  • 下一步。 运行 的代码。

你会看到,弹出的信息框会给你一个 声明位置的数字 的文本 从某个位置开始 你想检查的。

解释一下。

由于我们已经知道(从第一阶段的讨论中),文本" 选择 "的位置开始。 16 ,所以我们插入了两个" 选择 "的主要字符串,并设置 17 作为我们的第一个参数,跳过第一个" 选择 "。 所以,我们 运转 上面的宏,它显示了我们的位置号 27 的位置号,这正好是 第二 " 选择 "在给定的字符串中。

3.VBA在字符串中用不区分大小写的InStr函数查找文本

从引入 术语 函数,你已经知道,在默认情况下, 术语 让我们通过一个例子来了解一下。

见下文 VBA 代码,我们想找到""这个词的位置。 选择 ",并有一个 大写的 "C" 在字符串" 幸福是一种选择 ",这里的选择是用一个 小 "C" .

  • 运行 的代码,并找到 0 作为我们的输出。

这是因为 术语 功能处理 大写的 "C" 小 "C" 不同的是,所以它搜索了""一词。 选择 "的字符串,但没有得到任何匹配,因此返回 0 .

  • 为了使 术语 功能 不区分大小写 ,将比较参数设为 vbTextCompare (见下文)。
 Sub INSTR_Example() MsgBox InStr(1, "Happiness is a choice and choice", "Choice", vbTextCompare) End Sub 

  • 运转 的代码。

你会得到 文字的位置 从字符串中,文本是否写在 大写字母或小写字母 .

4.用VBA从一个字符串的右边查找文本

直到现在 术语 但如果你想从字符串的右边找到文本的位置,该怎么办?

InStrRev函数 从右边开始搜索。 严格执行 函数的工作原理与 术语 函数,它将为你找到一个文本的位置,从 右侧 的字符串。

请看下面的例子,了解其中的区别。

  • 如果我们用以下代码运行 术语 功能,然后。

它给我们的位置( 16 )的第一个文本" 选择 ".

  • 但是,如果我们运行同样的代码,用 严格执行 职能的话。

它给我们的位置( 27 )的最后一个文本" 选择 ".

类似的阅读。

  • 在Excel中使用VBA查找下一页(2例)
  • 如何使用VBA查找和替换(11种方法)
  • 在Excel中使用VBA查找精确匹配(5种方法)

5.用VBA查找字符串中的一个字符的位置

你也可以用查找文本的方法来查找字符串中某个字符的位置。

  • 将以下代码复制到你的 VBA 代码窗口
 Sub Find_Character() Dim z As Long z = InStr("Happiness is a choice", "e") MsgBox z End Sub 

  • 而且 运行 宏观。

第一个" e 在我们给定的字符串中,""是在数字 7 位置。

6.用VBA查找字符串中的子串

在这里我们将学习如何查找一个字符串是否包含一个 子串 或不。

为了得到这个,我们必须运行一个 IF声明 在我们的代码中。

  • 与之前的方法一样,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Public Sub FindSub() If InStr("Happiness is a choice", "choice") = 0 Then MsgBox "No match found" Else MsgBox "Match found" End If End Sub 

你的代码现在可以运行了。

  • 运转 宏观。

如果你的 字符串包含子串 那么你将得到一个 找到匹配的 ,否则,它将返回没有找到匹配。 在我们的例子中,我们想找出我们的主要字符串" 幸福是一种选择 "含有""的字样。 选择 "既然如此,我们就得到一个 发现匹配 结果。

7.用VBA查找单元格范围内的字符串

你可以在字符串的单元格范围内搜索某个文本并返回某个字符串。

请看下面的例子,我们会发现" 博士。 ",当有一个匹配的时候,它将返回" 医生 ".

  • 以下是获得上述结果的代码。
 Sub Find_String_in_Range() Dim cell As Range For Each cell In Range("B5:B10") If InStr(cell.Value, "Dr.")> 0 Then cell.Offset(0, 1).Value = "Doctor" End If Next cell End Sub 

  • 运转 的代码,结果显示如下

  • 你可以根据你的需要修改这个宏。 例如,如果你想找到" 教授。 在字符串的任何单元格中的"",并得到" 教授 "作为回报,那么只需将" 教授。 "作为值,而不是" 医学博士 。"在宏的第4行,"。 教授 ",而不是" 医生 "在宏的第5行,并相应地定义单元格区域的编号。

8.用VBA查找单元格中的字符串

你也可以 在字符串的单个单元格中搜索某个文本 并返回一个特定的字符串。

  • 复制以下代码并将其粘贴到代码窗口。
 Sub Find_String_in_Cell() If InStr(Range("B5").Value, "Dr.")> 0 Then Range("C5") .Value = "Doctor" End If End Sub 

它将搜索" 博士。 "在 细胞B5 如果它找到了匹配,则返回" 医生 "在 细胞C5 .

  • 你可以根据你的需要修改这个宏。 例如,如果你想找到" 教授。 在字符串的任何单元格中的"",并得到" 教授 "作为回报,那么只需将" 教授。 "为值,而不是" 医学博士 。"在宏的第2行,"。 教授 ",而不是" 医生 "在宏的第3行,并相应定义单元格参考号。

总结

这篇文章向你展示了如何在Excel中使用以下方法查找字符串中的某些文本 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.