Table of contents
实施 VBA 是在Excel中运行任何操作的最有效、最快速、最安全的方法。 在这篇文章中,我们将向你展示如何在另一个给定的字符串中使用 VBA 在Excel中。
下载实践模板
你可以从这里下载免费的练习Excel模板。
用VBA在String.xlsm中查找
InStr函数
Microsoft Excel有一个内置的函数,叫做 InStr函数 来查找特定字符串在一个给定的字符串中的位置。
通用语法。
InStr([开始], string1, string2, [比较])
在这里。
论点 | 必备/可选 | 定义 |
---|---|---|
开始 | 可选 | 搜索的起始位置。
|
绳子1 | 需要 | 要搜索的字符串,主要字符串。 |
弦乐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宏。 我希望这篇文章对你非常有益。 欢迎提出任何有关该主题的问题。