Funkcia VBA MID | Ako používať funkciu Excel VBA MID?

Funkcia Excel VBA MID

Funkcia VBA MID extrahuje hodnoty zo stredu zadanej vety alebo slova. Funkcia MID je kategorizovaná pod funkciou String a Text a je to funkcia listu, čo znamená, že na použitie tejto funkcie vo VBA musíme použiť metódu application.worksheet.

Existujú situácie, keď chceme extrahovať meno, priezvisko alebo druhé meno. V takýchto situáciách sú vzorce kategórie TEXT užitočné na splnenie našich požiadaviek. Použitie tejto funkcie je rovnaké ako v prípade odkazu na pracovný hárok a rovnaká je aj syntax.

Syntax

Rovnako ako naša funkcia MID programu Excel, aj vo VBA má podobnú sadu syntaxových hodnôt. Nižšie je uvedená syntax.

  • String to Search: Toto nie je nič iné ako veta reťazca, tj. Z ktorého reťazca alebo slova chcete extrahovať hodnoty.
  • Východisková pozícia: Z ktorej polohy vety chcete extrahovať. Malo by ísť o číselnú hodnotu.
  • Počet znakov na extrahovanie: Koľko znakov chcete z počiatočnej pozície extrahovať? Toto by mala byť tiež číselná hodnota.

Ako používať funkciu VBA MID?

Túto šablónu funkcií MID VBA si môžete stiahnuť tu - Šablónu funkcií VBA MID

Príklad č

Predpokladajme, že máte slovo „Dobrý deň, dobré ráno“ a chcete z tejto vety vytrhnúť slovo „dobré“. Hodnotu extrahujete podľa nasledujúcich pokynov.

Krok 1: Najprv vytvorte názov makra.

Kód:

 Sub MID_VBA_Example1 () Koncový sub 

Krok 2: Deklarujte premennú ako „STRING“.

Kód:

 Sub MID_VBA_Example1 () Dim MiddleValue ako reťazec End Sub 

Krok 3: Teraz priraďte hodnotu k tejto premennej pomocou funkcie MID.

Kód:

 Sub MID_VBA_Example1 () Dim MiddleValue ako reťazec MiddleValue = Mid (End Sub 

Krok 4: Prvý argument je reťazec, tj z ktorej hodnoty chceme extrahovať. Naša hodnota je teda „ahoj dobré ráno“.

Kód:

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

Krok 5: Ďalej je to, aká je východisková pozícia postavy, ktorú chcete extrahovať. V takom prípade Dobré ráno začína od 7. postavy.

Poznámka: Medzera je tiež postava.

Kód:

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

Krok 6: Dĺžka nie je nič iné ako koľko znakov chcete extrahovať. Tu musíme extrahovať 4 znaky, pretože slovo „Dobrý“ má dĺžku 4 znaky.

Kód:

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

Krok 7: Dokončili sme vzorec. Ukážme výsledok premennej v okne správy.

Kód:

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

Krok 8: Teraz spustite tento kód manuálne alebo stlačte kláves F5, v okne správy by sa malo zobraziť slovo „Dobré“.

Výkon:

Príklad č

Predpokladajme, že máte spoločné meno a priezvisko a slovo je „Ramesh, Tendulkar“. Medzi menom a priezviskom je znak oddeľovača čiarka (,). Teraz musíme extrahovať iba krstné meno.

Krok 1: Vytvorte makro a definujte premennú.

Kód:

 Sub MID_VBA_Example2 () Dim Dim ako String End Sub 

Krok 2: Teraz priraďte hodnotu tejto premennej pomocou funkcie MID.

Kód:

 Sub MID_VBA_Example2 () Dim DimName ako reťazec FirstName = Mid (End Sub 

Krok 3: Náš reťazec je „Ramesh.Tendulkar“, takže zadajte toto slovo.

Kód:

 Sub MID_VBA_Example2 () Dim DimName ako reťazec FirstName = Mid ("Ramesh, Tendulkar", End Sub 

Krok 4: Pretože extrahujeme, počiatočná pozícia mena je 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.