VBA MID funkció | Hogyan kell használni az Excel VBA MID funkciót?

Excel VBA MID funkció

A VBA MID függvény kivonja az értékeket a mellékelt mondat vagy szó közepéből. A MID függvény a Karakterlánc és a Szöveg függvény kategóriába tartozik, és ez egy munkalapfüggvény, ami azt jelenti, hogy ennek a függvénynek a VBA-ban való használatához az application.worksheet módszert kell használnunk.

Vannak olyan helyzetek, amikor ki akarjuk vonni a keresztnevet, a vezetéknevet vagy a középső nevet. Ezekben a helyzetekben a TEXT kategória képletei segítenek követelményeink teljesítésében. Ennek a függvénynek a használata megegyezik a munkalap hivatkozásával, és a szintaxis is megegyezik.

Szintaxis

Az excel MID függvényünkhöz hasonlóan a VBA-ban is hasonló szintaxisok halmaza van. Az alábbiakban található a szintaxis.

  • String to Search: Ez nem más, mint mi a string mondata, azaz melyik karakterláncból vagy szóból szeretné kivonni az értékeket.
  • Kezdő pozíció: A mondat melyik helyzetéből kívánja kivonni. Ennek numerikus értéknek kell lennie.
  • Kibontandó karakterek száma: A kiinduló helyzetből hány karaktert szeretne kinyerni? Ennek is numerikus értéknek kell lennie.

Hogyan kell használni a VBA MID funkciót?

Ezt a VBA MID funkciósablont innen töltheti le - VBA MID függvénysablont

1. példa

Tegyük fel, hogy megvan a „Hello Jó reggelt” szó, és ki akarod vonni a „Jó” szót ebből a mondatból. Kövesse az alábbi lépéseket az érték kibontásához.

1. lépés: Először hozzon létre egy makrónevet.

Kód:

 Sub MID_VBA_Példa1 () End Sub 

2. lépés: Nyújtson be egy változót STRING-nek.

Kód:

 Sub MID_VBA_Example1 () Dim MiddleValue As String End Sub 

3. lépés: Most rendeljen értéket ehhez a változóhoz a MID függvényen keresztül.

Kód:

 Sub MID_VBA_Example1 () Dim MiddleValue As String Középérték = Mid (End Sub 

4. lépés: Az első argumentum a String, azaz melyik értékből szeretnénk kivonni. Tehát az értékünk a „Hello Good Morning”.

Kód:

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

5. lépés: Ezután következik a kivonni kívánt karakter kiindulási helye. Ebben az esetben a Jó reggelt egy 7. karaktertől kezdi.

Megjegyzés: A szóköz szintén karakter.

Kód:

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

6. lépés: A hossz nem más, mint hogy hány karaktert szeretne kibontani. Itt 4 karaktert kell kinyernünk, mert a „Jó” szó hossza 4 karakter.

Kód:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Hello Morning", 7, 4) Vége Sub 

7. lépés: Elkészítettük a képletet. Mutassuk meg a változó eredményét az üzenetmezőben.

Kód:

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

8. lépés: Most futtassa ezt a kódot manuálisan, vagy nyomja meg az F5 billentyűt, az üzenetmezőben a „Jó” szót kell megjeleníteni.

Kimenet:

2. példa

Tegyük fel, hogy kereszt- és vezetékneved együtt van, és a szó „Ramesh, Tendulkar”. Az utónév és a vezetéknév között az elválasztó karakter vessző (,). Most csak az utónevet kell kibontanunk.

1. lépés: Hozzon létre egy makrót, és adjon meg egy változót.

Kód:

 Sub MID_VBA_Example2 () Dim FirstName mint karakterlánc vége Sub 

2. lépés: Most rendeljen értéket ehhez a változóhoz a MID függvényen keresztül.

Kód:

 Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Közép (End Sub 

3. lépés: A karakterláncunk „Ramesh.Tendulkar”, ezért írja be ezt a szót.

Kód:

 Sub MID_VBA_Example2 () Dim FirstName mint karakterlánc FirstName = Közép ("Ramesh, Tendulkar", End Sub 

4. lépés: Mivel a keresztnevet kibontjuk, a kezdő pozíció 1.

Kód:

 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.