VBA子字符串|如何使用VBA函数提取子字符串?

Excel VBA子字符串

SubString是字符串的一部分或一部分,或者字符串的字符称为“ SubString”。VBALEFT,RIGHT和MID中有三种类型的子字符串函数,它们类似于excel中的工作表子字符串。

字符串不过是一系列字符,字符可以是字母,数字,特殊字符,也可以将所有这些结合起来。

在excel中,当我们处理数据(通常是字符串)时,通常只需要获取字符串的一部分即可以达到我们的目的。我们可能不需要使用完整的字符串,但是我们只需要使用字符串的一部分即可。例如,如果您的名称为“ Sachin Tendulkar”,则可能只需要名称的第一部分,即“ Sachin”。这在Excel VBA中称为字符串的SubString。为了处理这些字符串,我们在excel类别的TEXT函数下具有内置函数。

在本文中,我们将讨论如何从VBA中的完整字符串中获取子字符串。

如何在VBA中使用SubString函数?

要从字符串中提取子字符串,我们具有一些内置的文本函数,并且一些重要的函数是excel中的LEFT,RIGHT,INSTR和MID。功能 指令 将作为其他三个功能的支持功能。

我们将看到如何使用这些函数来实际提取子字符串。阅读以下示例以了解它们。

您可以在此处下载此VBA SubString Excel模板– VBA SubString Excel模板

Example#1 –使用左函数

如果您的全名是 “萨钦·滕杜尔卡” 并且您只需要提取名字,因为子字符串使用以下代码来获取相同的名称。

步骤1: 创建一个宏名称并将两个变量定义为String。

代码:

 Sub SubString_Example1()Dim FullName作为字符串Dim FirstName作为字符串End Sub 

第2步: 现在,将名称“ Sachin Tendulkar”分配给变量 全名.

代码:

 Sub SubString_Example1()Dim FullName作为字符串Dim FirstName作为字符串FullName =“ Sachin Tendulkar” End Sub 

第三步: 现在变量 全名 持有“ Sachin Tendulkar”的价值。现在,我们需要从全名中提取名字的excel VBA子字符串。因此,为变量分配值 通过左功能。

代码:

 Sub SubString_Example1()Dim FullName作为字符串Dim FirstName作为字符串FullName =“ Sachin Tendulkar” FirstName = Left(End Sub 

步骤4:VBA LEFT函数的第一个参数是 细绳, 那就是完整值或完整字符串。在此示例中,我们的完整值或字符串是“ Sachin Tendulkar”,已分配给变量 全名。

所以供给变量 全名 作为论点。

代码:

 Sub SubString_Example1()Dim FullName作为字符串Dim FirstName作为字符串FullName =“ Sachin Tendulkar” FirstName =左端Sub 

步骤5:下一个 参数是我们从提供的字符串中需要多少个字符,因此在这种情况下,我们需要名字“萨钦”所以我们完全需要 6个字符 从左侧开始。

代码:

 Sub SubString_Example1()Dim FullName作为字符串Dim FirstName作为字符串FullName =“ Sachin Tendulkar” FirstName = Left(FullName,6)End Sub 

步骤6: 现在,在VBA的消息框中显示结果。

代码:

 Sub SubString_Example1()Dim FullName作为字符串Dim FirstName作为字符串FullName =“ Sachin Tendulkar” FirstName = Left(FullName,6)MsgBox FirstName End Sub 

步骤7: 运行宏,请在消息框中看到名字作为子字符串。

Example#2 –从右边获取SubString

就像我们从左边提取子串的方式一样,我们也可以从右边提取子串。以相同的名称为例。

步骤1: 将两个变量定义为String。

代码:

 Sub SubString_Example2()Dim FullName作为字符串Dim LastName作为字符串End Sub 

第2步: 与往常一样,将值分配给变量 全名 作为 “萨钦·滕杜尔卡”

代码:

 Sub SubString_Example2()Dim FullName作为字符串Dim LastName作为字符串FullName =“ Sachin Tendulkar”结束Sub 

第三步: 现在为变量 通过RIGHT excel函数分配值。

代码:

 Sub SubString_Example2()Dim FullName作为字符串Dim LastName作为字符串FullName =“ Sachin Tendulkar” LastName = Right(End Sub 

第4步: 弦是我们的 全名 因此提供变量。

代码:

 Sub SubString_Example2()Dim FullName作为字符串Dim LastName作为字符串FullName =“ Sachin Tendulkar” LastName = Right(FullName,End Sub 

步骤5: 长度是从右侧需要多少个字符,我们需要 9个字符 从右边。

代码:

 Sub SubString_Example2()Dim FullName作为字符串Dim LastName作为字符串FullName =“ Sachin Tendulkar” LastName = Right(FullName,9)End Sub 

步骤6: 留言框.

代码:

 Sub SubString_Example2()Dim FullName作为字符串Dim LastName作为字符串FullName =“ Sachin Tendulkar” LastName = Right(FullName,9)MsgBox LastName End Sub 

步骤7: 运行宏,我们将在消息框中看到姓氏。

Example#3 –使用Instr函数

在上面的示例中,我们只有一个名称,我们直接从左侧和右侧提供了我们需要多少个字符。但是,在许多名称的情况下,名字和姓氏字符不相同,这在名称和名称之间会有所不同。在这种情况下,我们无法直接提供字符数,因此我们可以使用该功能 指令

指令 函数将返回字符串中提供的字符位置。例如,请看下面的代码。

代码:

 Sub SubString_Example3()昏暗位置作为字符串位置= InStr(1,“ Sachin”,“ a”)MsgBox位置结束Sub 

InStr(1,“ Sachin”,“ a”) 这将确定信件的位置 “一种” 作为字符串中的第一个外观 “萨钦”。 在这种情况下,字母 “一种” 在第二位置。因此,在消息框中将得到2作为结果。

这样,我们可以使用 仪器 函数,用于查找名字和姓氏之间的空格字符。

例如,请查看我在excel工作表中使用的以下名称。

使用 左,右和指令 函数我们可以提取子字符串。下面是提取名字的代码。

代码:

 Sub FirstName()Dim K作为Long Dim LR作为Long LR = Cells(Rows.Count,1).End(xIUp).Row For K = 2 To LR Cells(K,2).Value = Left(Cells(K, 1).Value,InStr(1,Cells(K,1).Value,“”)-1)下一个K End Sub 

运行宏,然后在消息框中看到名字作为子字符串。

使用以下代码提取姓氏作为子字符串。

代码:

 Sub LastName()Dim K作为Long Dim LR作为Long LR = Cells(Rows.Count,1).End(xIUp).Row For K = 2 To LR Cells(K,3).Value = Right(Cells(K, 1).Value,Len(Cells(K,1))-InStr(1,Cells(K,1).Value,“”))下一个K结束子 

运行宏,我们将在消息框中看到姓氏。

我已将宏按钮分配给工作表,下载工作簿并使用它们。