VBA MID-funktion | Hvordan bruges Excel VBA MID-funktion?

Excel VBA MID-funktion

VBA MID- funktionen ekstraherer værdierne fra midten af ​​den medfølgende sætning eller ord. MID-funktionen er kategoriseret under String and Text-funktionen, og det er en regnearksfunktion, der betyder at bruge denne funktion i VBA, vi skal bruge metoden application.worksheet.

Der er situationer, hvor vi vil udtrække fornavn, efternavn eller mellemnavn. I disse situationer er TEXT-kategoriformler nyttige til at opfylde vores krav. Brugen af ​​denne funktion er den samme som for regnearkreferencen, og syntaksen er også den samme.

Syntaks

Ligesom vores excel MID-funktion har den også i VBA et lignende sæt syntaksværdier. Nedenfor er syntaksen.

  • Streng til søgning: Dette er intet andet end hvad der er sætningen i streng, dvs. fra hvilken streng eller ord, du vil udtrække værdierne.
  • Startposition: Fra hvilken position af sætningen du vil udtrække. Dette skal være en numerisk værdi.
  • Antal tegn, der skal udpakkes: Hvor mange tegn vil du fra udgangspositionen udtrække? Dette skal også være en numerisk værdi.

Hvordan bruges VBA MID-funktion?

Du kan downloade denne VBA MID-funktionsskabelon her - VBA MID-funktionsskabelon

Eksempel nr. 1

Antag at du har ordet “Hej god morgen”, og at du vil udtrække “God” fra denne sætning. Følg nedenstående trin for at udtrække værdien.

Trin 1: Opret først et makronavn.

Kode:

 Sub MID_VBA_Example1 () Afslut Sub 

Trin 2: Erklær en variabel som “STRING”.

Kode:

 Sub MID_VBA_Example1 () Dim MiddleValue Som String End Sub 

Trin 3: Tildel nu en værdi til denne variabel gennem MID-funktionen.

Kode:

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

Trin 4: Første argument er String, dvs. fra hvilken værdi vi vil udtrække. Så vores værdi er "Hej god morgen".

Kode:

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

Trin 5: Næste er, hvad der er startpositionen for det tegn, du vil udtrække. I dette tilfælde starter god morgen fra et 7. tegn.

Bemærk: Rummet er også et tegn.

Kode:

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

Trin 6: Længde er intet andet end hvor mange tegn du vil udtrække. Vi er nødt til at udtrække 4 tegn her, fordi længden af ​​ordet "God" er 4 tegn.

Kode:

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

Trin 7: Vi har afsluttet formlen. Lad os vise resultatet af variablen i meddelelsesfeltet.

Kode:

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

Trin 8: Kør nu denne kode manuelt eller tryk på F5-tasten, meddelelsesfeltet skal vise ordet "God".

Produktion:

Eksempel 2

Antag, at du har et fornavn og efternavn sammen, og ordet er “Ramesh, Tendulkar”. Mellem fornavn og efternavn er adskillelsestegn et komma (,). Nu skal vi kun udpakke fornavnet.

Trin 1: Opret en makro og definer en variabel.

Kode:

 Sub MID_VBA_Example2 () Dæmp fornavn som streng-slut-sub 

Trin 2: Tildel nu en værdi til denne variabel gennem MID-funktionen.

Kode:

 Under MID_VBA_eksempel2 () Dim fornavn som streng fornavn = midt (afslut sub 

Trin 3: Vores streng er "Ramesh.Tendulkar", så indtast dette ord.

Kode:

 Sub MID_VBA_Example2 () Dim fornavn som streng fornavn = midt ("Ramesh, Tendulkar", slut sub 

Trin 4: Da vi ekstraherer fornavnets startposition er 1.

Kode:

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

Step 5: Length of the character you can directly enter as 6 but this is not the best way. In order to determine the length lets apply one more formula called Instr.

Code:

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

Step 6: For this starting position is 1.

Code:

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

Step 7: String 1 is our name i.e. “Ramesh, Tendulkar”.

Code:

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

Step 8: String 2 what is the separator of first name & last name i.e. comma (,).

Code:

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

Note: Instr function will return how many characters are there in the word “Ramesh, Tendulkar” from the string 1 position to the string 2 positions i.e. until comma (,). So Instr will return 7 as the result including comma (,).

Step 9: Since Instr function returns no., of characters including comma (,) we need to minus 1 character here. So enter -1 after the close of Instr function.

Code:

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

Step 10: Now show the value of the variable in the message box.

Code:

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

Step 11: Run this code using F5 key or you can run this code manually, we would get the first name in the message box.

Output:

Example #3

Now I will give you one assignment to solve. I have a list of First Name & Last Name.

From this list I want you to extract the first name only. All the best!!!!.

Ok, If you have tried and not able to get the result then below code would help you in this.

Code:

 Sub MID_VBA_Example3()     Dim   i   As Long For i = 2   To  15 Cells(i, 2).Value = Mid(Cells(i, 1).Value, 1, InStr(1, Cells(i, 1).Value, ",") - 1)     Next i End Sub 

Copy & Paste the above code in your module. After copying the code, run this code using the F5 key or you can run manually.

It should give the result like the below.

Things to Remember

  • Length argument in MID function is optional. If you ignore this it will take 1 as the default value.
  • In order to determine the length or starting position use Instr function along with MID function.