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函数。