VBA检查Excel中的字符串是否包含另一个字符串(6种方法)

  • Share This
Hugh West

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

下载实践模板

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

VBA检查字符串是否包含值.xlsm

在VBA中检查Excel中字符串是否包含另一个字符串的6种方法

在本节的下面,你会发现6种有效的方法,即如何实施 VBA 来检查一个字符串是否包含另一个字符串。

1.VBA检查字符串是否包含子串

下面是一个例子 InStr函数 在Excel中查找一个字符串是否包含一个子串。

步骤。

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

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

  • 在代码窗口,复制以下代码并粘贴。
 Public Sub ContainSub() If InStr("Movie: Iron Man, Batman, Superman, Spiderman, Thor", "Hulk")> 0 Then MsgBox "Movie found" Else MsgBox "Movie not found" End If 结束 Sub 

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

  • 运行 宏观。

如果你的 字符串包含子串 那么你将得到一个找到的匹配,否则,它将返回没有找到匹配。

在我们的例子中,我们想找出我们的主要字符串" 电影:钢铁侠、蝙蝠侠、超人、蜘蛛侠、雷神 "包含""的字样。 Hulk "由于它没有,我们得到一个 未找到电影 结果。

2.VBA检查字符串是否包含数字

你可以通过使用以下方法来搜索字符串是否包含数字。 VBA 代码。

请看下面的例子,我们将找到哪些字符串含有电影名称的数字。

检查字符串中是否含有数字的步骤有 VBA 下文给出了答案。

步骤。

  • 与之前的方法一样,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Function SearchNumbers(oRng As Range) As Boolean Dim bSearchNumbers As Boolean, i As Long bSearchNumbers = False For i = 1 To Len(oRng.Text) If IsNumeric(Mid(oRng.Text, i, 1)) Then bSearchNumbers = True Exit For End If Next SearchNumbers = bSearchNumbers End Function 
  • 这不是 "次级程序",而是 VBA 程序运行,这是在创建一个 用户定义的功能(UDF)。 我们将在我们的工作表中调用它来执行任务。 因此,在写完代码后,不要点击 运转 按钮,点击 拯救 菜单栏中的 "保存宏文件 "按钮。
  • 现在回到你感兴趣的工作表,将你刚才创建的用户定义的函数写在 VBA 代码( 搜索号码 ,在代码的第一行),并在该函数的括号内,输入字符串中具有前导数字的单元格的参考编号(如 细胞B5 ).
  • 新闻 进入 .

你将得到一个布尔值( 为真 假的 ),如果单元格中的字符串包含数字,那么你会得到 为真 ,否则 失败 .

  • 将该单元格向下拖动 填充手柄 将该公式应用于其余的单元格,以检查哪个字符串包含数字,哪个不包含数字。

3.用VBA从字符串中提取数字

在上一节中,我们学习了如何检查字符串是否包含数字。 在这一节中,我们将学习如何提取这些数字,并通过下面的例子将它们放到另一个单元格中。

检查字符串是否包含数字的步骤,并通过以下方式提取它们 VBA 下文给出了答案。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 用户表格 这次是在代码窗口的 "插入 "选项卡中。
  • 从出现 工具箱 ,拖放 命令按钮 用户表格 .

  • 双击 按钮上,复制以下代码并粘贴。
 Private Sub CommandButton1_Click() Worksheets("Number").Range("C2:C15").ClearContents checkNumber (Worksheets("Number").Range("B2:B15")) End Sub checkNumber(objRange As Range) Dim myAccessary As Variant Dim i As Long Dim iRow As Long iRow = 2 For Each myAccessary In objRange For i = 1 To Len(myAccessary.Value) If IsNumeric(Mid(myAccessary.Value, i..)1)) Then If Trim(objRange.Cells(objRange.Row - 1, 2)) "" Then objRange.Cells(iRow - 1, 2) = _ objRange.Cells(iRow - 1, 2) & Mid(myAccessary.Text, i, 1) Else objRange.Cells(iRow - 1, 2) = Mid(myAccessary.Text, i, 1) End If 结束 If Next iRow = iRow + 1Next myAccessary End Sub 
  • 运行 的代码,它将带你到感兴趣的工作表。
  • 单击命令按钮 而你将从字符串中得到提取的数字。

4.VBA检查字符串是否包含某些字母

这种方法与检查字符串中的子串的方法几乎相似。

下面是 术语 函数来查找一个字符串是否包含Excel中的某个字母。

步骤。

  • 与之前的方法一样,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Public Sub ContainChar() If InStr("Movie: Iron Man, Batman, Superman, Spiderman, Thor", "Z")> 0 Then MsgBox "Letter found" Else MsgBox "Letter not found" End If 结束 Sub 

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

  • 运行 如果你的 字符串包含字母 那么你将得到一个找到的匹配,否则,它将返回没有找到匹配。

在我们的例子中,我们想找出我们的主要字符串" 电影:钢铁侠、蝙蝠侠、超人、蜘蛛侠、雷神 "包含字母" Z "由于它没有,我们得到一个 未找到信件 结果。

5.VBA检查一个字符串的范围是否包含另一个字符串

我们已经学习了如何检查一个给定的字符串是否包含另一个字符串。 但在本节中,我们将以下面的数据集为例,学习如何检查一个字符串的范围是否包含子串。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Public Sub ContainsSub() If InStr(ActiveSheet.Select, "Hulk")> 0 Then MsgBox "Movie found" Else MsgBox "Movie not found" End If End Sub 

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

  • 运行 的代码。

如果你的范围 字符串包含子串 那么你将得到一个找到的匹配,否则,它将返回没有找到匹配。

6.用VBA从字符串中提取字符串

在本节中,我们将看到如何检查字符串是否包含某些子串,并在另一个单元格中提取这些子串。

我们将提取以""开头的名字的信息。 克里斯 "来自以下数据集。

阶梯 :

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub SearchSub() Dim lastrow As Long Dim i As Integer, count As Integer lastrow = ActiveSheet.Range("A30000").End(xlUp).Row For i = 1 To lastrow If InStr(1, LCase(Range("C" & i)), "Chris") 0 Then count = count + 1 Range("F" & count & " :H" & count) = Range("B" & i & " :D" & i) . End If Next i End Sub 

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

  • 运行 的代码。

只有以""开头的名字 克里斯 "将被储存在预定义的单元格中。

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.