Excel VBA MID-funktion
VBA MID- funktionen extraherar värdena från mitten av den angivna meningen eller ordet. MID-funktionen är kategoriserad under sträng- och textfunktionen och det är en kalkylbladfunktion som innebär att vi använder den här funktionen i VBA, vi måste använda metoden application.worksheet.
Det finns situationer där vi vill extrahera förnamn, efternamn eller mellannamn. I sådana situationer är TEXT-kategoriformler till hjälp för att uppfylla våra krav. Användningen av denna funktion är densamma som för kalkylbladets referens, och syntaxen är också densamma.

Syntax
Liksom vår excel MID-funktion har den också i VBA en liknande uppsättning syntaxvärden. Nedan är syntaxen.

- String to Search: Detta är ingenting annat än vad som är meningen med strängen, dvs från vilken sträng eller vilket ord du vill extrahera värdena.
- Startposition: Från vilken position av meningen du vill extrahera. Detta bör vara ett numeriskt värde.
- Antal tecken som ska extraheras: Hur många tecken vill du extrahera från startpositionen? Detta bör också vara ett numeriskt värde.
Hur använder jag VBA MID-funktionen?
Exempel 1
Antag att du har ordet "Hello Good Morning" och att du vill extrahera "Good" från den här meningen. Följ stegen nedan för att extrahera värdet.
Steg 1: Skapa först ett makronamn.
Koda:
Sub MID_VBA_Example1 () Avsluta Sub

Steg 2: Förklara en variabel som "STRING".
Koda:
Sub MID_VBA_Example1 () Dim MiddleValue som strängänd Sub

Steg 3: Tilldela nu ett värde till denna variabel genom MID-funktionen.
Koda:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid (End Sub

Steg 4: Det första argumentet är String, dvs från vilket värde vi vill extrahera. Så vårt värde är "Hej god morgon."
Koda:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", End Sub

Steg 5: Nästa är vad som är startpositionen för karaktären du vill extrahera. I det här fallet börjar god morgon från en sjunde karaktär.
Obs! Utrymme är också en karaktär.
Koda:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7 End Sub

Steg 6: Längd är inget annat än hur många tecken du vill extrahera. Vi måste extrahera fyra tecken här på grund av att ordet ”Bra” har fyra tecken.
Koda:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7, 4) End Sub

Steg 7: Vi har slutfört formeln. Låt oss visa resultatet av variabeln i meddelandefältet.
Koda:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7, 4) MsgBox MiddleValue End Sub

Steg 8: Kör nu den här koden manuellt eller tryck på F5-tangenten, meddelandefältet ska visa ordet "Bra".

Produktion:

Exempel 2
Antag att du har ett förnamn och efternamn tillsammans, och ordet är "Ramesh, Tendulkar." Mellan förnamn och efternamn är separeringstecken ett komma (,). Nu behöver vi bara extrahera förnamnet.
Steg 1: Skapa ett makro och definiera en variabel.
Koda:
Sub MID_VBA_Example2 () Dim förnamn som strängändsub

Steg 2: Tilldela nu ett värde till denna variabel genom MID-funktionen.
Koda:
Under MID_VBA_Exempel2 () Dim förnamn som sträng Förnamn = mitt (slut sub

Steg 3: Vår sträng är "Ramesh.Tendulkar", så skriv detta ord.
Koda:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", End Sub

Step 4: Since we are extracting the first name starting position is 1.
Code:
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, let’s 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 a 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 the 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 the below code would help you in this.
Code:
Sub MID_VBA_Example3 () Dim i så länge för i = 2 till 15 celler (i, 2) .Value = Mid (Cells (i, 1) .Value, 1, InStr (1, Cells (i, 1) .Value, " , ") - 1) Nästa i End Sub
Kopiera och klistra in koden ovan i din modul. När du har kopierat koden, kör den här koden med F5-tangenten, eller så kan du köra manuellt.

Det borde ge ett resultat som nedan.

Saker att komma ihåg
- Längdsargumentet i MID-funktionen är valfritt. Om du ignorerar detta tar det 1 som standardvärde.
- För att bestämma längden eller startpositionen, använd Instr-funktionen tillsammans med MID-funktionen.