VBA MID功能|如何使用Excel VBA MID函数?

Excel VBA MID函数

VBA MID 函数从提供的句子或单词的中间提取值。 MID函数归类为“字符串和文本”函数,它是一个工作表函数,这意味着要在VBA中使用此函数,我们需要使用application.worksheet方法。

在某些情况下,我们要提取名字,姓氏或中间名。在这种情况下,TEXT类别公式有助于满足我们的要求。此功能的使用与工作表参考的用法相同,语法也相同。

句法

就像我们的excel MID函数一样,在VBA中,它也具有一组相似的语法值。下面是语法。

  • 搜索字符串: 这不过是字符串的句子是什么,即您要从哪个字符串或单词中提取值。
  • 起始位置: 您要从句子的哪个位置提取。这应该是一个数值。
  • 要提取的字符数: 您要从起始位置提取多少个字符?这也应该是一个数值。

如何使用VBA MID功能?

您可以在此处下载此VBA MID功能模板– VBA MID功能模板

范例#1

假设您有单词“ Hello Good Morning”,并且您想从这句话中提取“ Good”。请按照以下步骤提取值。

步骤1: 首先创建一个宏名称。

代码:

 子MID_VBA_Example1()结束子 

第2步: 将变量声明为“ STRING”。

代码:

 Sub MID_VBA_Example1()Dim MiddleValue As String End Sub 

第三步: 现在,通过MID函数为该变量分配一个值。

代码:

 Sub MID_VBA_Example1()Dim MiddleValue As String MiddleValue = Mid(End Sub 

第4步: 第一个参数是字符串,即我们要从中提取值。因此,我们的价值是“你好,早上好”。

代码:

 Sub MID_VBA_Example1()Dim MiddleValue As String MiddleValue = Mid(“ Hello Good Morning”,End Sub 

步骤5: 接下来是您要提取的字符的起始位置。在这种情况下,早安从第7个字符开始。

笔记: 空间也是一个角色。

代码:

 Sub MID_VBA_Example1()Dim MiddleValue As String MiddleValue = Mid(“ Hello Good Morning”,7 End Sub 

步骤6: 长度不过是您要提取多少个字符。我们这里需要提取4个字符,因为单词“ Good”的长度为4个字符。

代码:

 Sub MID_VBA_Example1()Dim MiddleValue As String MiddleValue = Mid(“ Hello Good Morning”,7,4)End Sub 

步骤7: 我们已经完成了公式。让我们在消息框中显示变量的结果。

代码:

 Sub MID_VBA_Example1()Dim MiddleValue As String MiddleValue = Mid(“ Hello Good Morning”,7,4)MsgBox MiddleValue End Sub 

步骤8: 现在,手动运行此代码或按F5键,消息框中应显示单词“ Good”。

输出:

范例#2

假设您同时拥有一个名字和姓氏,并且单词是“ Ramesh,Tendulkar”。在名字和姓氏之间,分隔符是逗号(,)。现在我们只需要提取名字。

步骤1: 创建一个宏并定义一个变量。

代码:

 Sub MID_VBA_Example2()昏暗的名字作为字符串结尾Sub 

第2步: 现在,通过MID函数为该变量分配一个值。

代码:

 Sub MID_VBA_Example2()Dim FirstName As String FirstName = Mid(End Sub 

第三步: 我们的字符串是“ Ramesh.Tendulkar”,所以输入这个词。

代码:

 Sub MID_VBA_Example2()Dim FirstName As String FirstName = Mid(“ Ramesh,Tendulkar”,End Sub 

第4步: 由于我们提取的名字的起始位置是1。

代码:

 Sub MID_VBA_Example2()Dim FirstName As String FirstName = Mid(“ Ramesh,Tendulkar”,1,End Sub 

步骤5: 您可以直接输入6个字符的长度,但这不是最好的方法。为了确定长度,让我们再应用一个称为Instr的公式。

代码:

 Sub MID_VBA_Example2()Dim FirstName As String FirstName = Mid(“ Ramesh,Tendulkar”,1,InStr(End Sub 

步骤6: 对于这个起始位置是1。

代码:

 Sub MID_VBA_Example2()Dim FirstName As String FirstName = Mid(“ Ramesh,Tendulkar”,1,InStr(1,End Sub 

步骤7: 字符串1是我们的名称,即“ Ramesh,Tendulkar”。

代码:

 Sub MID_VBA_Example2()Dim FirstName As String FirstName = Mid(“ Ramesh,Tendulkar”,1,InStr(1,“ Ramesh,Tendulkar”,End Sub 

步骤8: 字符串2,名字和姓氏的分隔符是什么,即逗号(,)。

代码:

 Sub MID_VBA_Example2()Dim FirstName As String FirstName = Mid(“ Ramesh,Tendulkar”,1,InStr(1,“ Ramesh,Tendulkar”,“,”)End Sub 

笔记: Instr函数将从字符串1的位置到字符串2的位置(即直到逗号(,))返回单词“ Ramesh,Tendulkar”中有多少个字符。因此Instr将返回7作为结果,包括逗号(,)。

步骤9: 由于Instr函数返回的字符号(包括逗号(,)),我们需要在此处减去1个字符。因此,在Instr函数关闭后输入-1。

代码:

 Sub MID_VBA_Example2()Dim FirstName As String FirstName = Mid(“ Ramesh,Tendulkar”,1,InStr(1,“ Ramesh,Tendulkar”,“,”)-1)结束子 

步骤10: 现在,在消息框中显示变量的值。

代码:

 Sub MID_VBA_Example2()Dim FirstName As String FirstName = Mid(“ Ramesh,Tendulkar”,1,InStr(1,“ Ramesh,Tendulkar”,“,”)-1)MsgBox FirstName End Sub 

步骤11: 使用F5键运行此代码,或者您可以手动运行此代码,我们将在消息框中获得名字。

输出:

例子#3

现在,我给您分配一个作业来解决。我有一个名字和姓氏列表。

从此列表中,我希望您仅提取名字。一切顺利!!!!。

好的,如果您尝试过但无法获得结果,则下面的代码将对此有所帮助。

代码:

 Sub MID_VBA_Example3()Dim i只要I = 2至15个Cells(i,2).Value = Mid(Cells(i,1).Value,1,InStr(1,Cells(i,1).Value,“ ,“)-1)下一个i结束子 

将以上代码复制并粘贴到您的模块中。复制代码后,请使用F5键运行此代码,也可以手动运行。

它应该给出如下结果。

要记住的事情

  • MID函数中的Length参数是可选的。如果您忽略此设置,则默认值为1。
  • 为了确定长度或起始位置,请使用Instr函数以及MID函数。