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结束子
运行宏,我们将在消息框中看到姓氏。
我已将宏按钮分配给工作表,下载工作簿并使用它们。