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 MIDPrí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.