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?

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: Najskôr 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 pomocou funkcie MID priraďte tejto premennej hodnotu.

Kód:

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

Krok 4: Prvý argument je String, 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 tomto prípade, Dobré ráno začína od 7 th znakov.

Poznámka: Medzera je tiež postava.

Kód:

Sub MID_VBA_Example1 () Dim MiddleValue ako 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 ako 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 tejto premennej priraďte hodnotu pomocou funkcie MID.

Kód:

Sub MID_VBA_Example2 () Dim FirstName 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 ako reťazec FirstName = Mid ("Ramesh, Tendulkar", 1, koncový sub

Krok 5: Dĺžka znaku, ktorú môžete priamo zadať ako 6, ale nie je to najlepší spôsob. Na určenie dĺžky použijeme ešte jeden vzorec s názvom Instr.

Kód:

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

Krok 6: Pre túto východiskovú pozíciu je 1.

Kód:

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

Krok 7: Prvý reťazec je naše meno, tj. „Ramesh, Tendulkar“.

Kód:

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 As Long For i = 2 až 15 buniek (i, 2). Hodnota = Mid (bunky (i, 1). Hodnota, 1, InStr (1, bunky (i, 1). Hodnota, " , ") - 1) Ďalej a Koniec Sub

Skopírujte a prilepte vyššie uvedený kód do svojho modulu. Po skopírovaní kódu tento kód spustite pomocou klávesu F5, alebo ho môžete spustiť manuálne.

Mal by poskytnúť výsledok, ako je uvedené nižšie.

Na čo treba pamätať

  • Argument dĺžka vo funkcii MID je voliteľný. Ak to budete ignorovať, bude ako predvolená hodnota použitá hodnota 1.
  • Na určenie dĺžky alebo začiatočnej polohy použite funkciu Instr spolu s funkciou MID.

Zaujímavé články...