Podreťazec VBA - Ako extrahovať podreťazec pomocou funkcií VBA?

Podreťazec Excel VBA

SubString je časť reťazca alebo časti alebo sa charakter reťazca nazýva „SubString“. Existujú tri typy podreťazcov vo VBA LEFT, RIGHT a MID, ktoré sú podobné ako podreťazce hárka v programe Excel.

Reťazec nie je nič iné ako séria znakov a znaky môžu byť abecedy, číslice, špeciálne znaky a tiež kombinovať všetky tieto znaky.

Keď pracujeme s údajmi, ktoré sú reťazcom, v exceli často potrebujeme na uľahčenie nášho účelu získať iba časť reťazca. Možno nebudeme potrebovať celý reťazec, ale na naše použitie budeme potrebovať iba jeho časť. Ak máte napríklad meno „Sachin Tendulkar“, budete možno potrebovať iba prvú časť názvu, tj. Iba „Sachin“. Toto sa nazýva ako Podreťazec reťazca v programe Excel VBA. Aby sme si s týmito reťazcami poradili, máme v kategórii Excel zabudované funkcie pod funkciou TEXT.

V tomto článku si ukážeme, ako získať podreťazec z celého reťazca vo VBA.

Ako používať funkcie podreťazca vo VBA?

Na extrahovanie podreťazca z reťazca máme niektoré vstavané textové funkcie a niektoré dôležité funkcie sú LEFT, RIGHT, INSTR a MID v programe Excel. Funkcia Instr bude slúžiť ako podporná funkcia pre ďalšie tri funkcie.

Uvidíme, ako pomocou týchto funkcií prakticky extrahovať podreťazce. Aby ste im porozumeli, prečítajte si nižšie uvedené príklady.

Príklad č. 1 - Použitie ľavej funkcie

Ak máte celé meno ako „Sachin Tendulkar“ a ako podreťazec potrebujete iba meno, ktoré chcete extrahovať, získajte rovnaké meno pomocou nasledujúceho kódu.

Krok 1: Vytvorte názov makra a definujte dve premenné ako reťazec.

Kód:

Sub SubString_Example1 () Dim FullName As String Dim Dim ako String End Sub

Krok 2: Teraz priraďte názov „Sachin Tendulkar“ k premennej FullName .

Kód:

Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" End Sub

Krok 3: Teraz má premenná FullName hodnotu „Sachin Tendulkar“. Teraz musíme z celého názvu extrahovať podreťazec VBA z excelu. Takže premennej FirstName priraďte hodnotu pomocou funkcie LEFT.

Kód:

Sub SubString_Example1 () Dim FullName As String Dim FirstName ako String FullName = "Sachin Tendulkar" FirstName = Left (End Sub

Krok 4: Prvý argument funkcie VBA LEFT je String; že je to, čo je plná hodnota alebo úplné reťazec. V tomto príklade je naša úplná hodnota alebo reťazec „Sachin Tendulkar“, ktorý je priradený k premennej FullName.

Ako argument teda zadajte premennú FullName .

Kód:

Sub SubString_Example1 () Dim FullName As String Dim FirstName ako String FullName = "Sachin Tendulkar" FirstName = ľavý koniec Sub

Krok 5: Ďalším argumentom je, koľko znakov potrebujeme z reťazca, ktorý sme zadali, takže v tomto prípade potrebujeme krstné meno „ Sachin “ tak úplne, že potrebujeme 6 znakov z ľavej strany.

Kód:

Sub SubString_Example1 () Dim FullName As String Dim FirstName ako String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) End Sub

Krok 6: Teraz ukážte výsledok v okne správy vo VBA.

Kód:

Sub SubString_Example1 () Dim FullName As String Dim FirstName ako String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) MsgBox FirstName End Sub

Krok 7: Spustite makro a v okne správy uvidíte krstné meno ako podreťazec.

Príklad č. 2 - Získajte podreťazec sprava

Podobne, ako sme podobne extrahovali podreťazec zľava, môžeme extrahovať aj sprava. Vezmite si ako príklad rovnaké meno.

Krok 1: Definujte dve premenné ako reťazec.

Kód:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String End Sub

Krok 2: Ako obvykle, priraďte hodnotu premennej FullName ako „Sachin Tendulkar“.

Kód:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" End Sub

Krok 3: Teraz pri premennej LastName priraďte hodnotu pomocou funkcie RIGHT excel.

Kód:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (End Sub

Krok 4: Reťazec je naše celé meno, zadajte teda premennú.

Kód:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, End Sub

Krok 5: Dĺžka predstavuje počet znakov, ktoré potrebujeme z pravej strany. Potrebujeme 9 znakov na pravej strane.

Kód:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) End Sub

Krok 6: Zobraziť túto hodnotu v okne so správou .

Kód:

Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) MsgBox LastName End Sub

Krok 7: Spustite makro. V schránke správ sa nám zobrazí priezvisko.

Príklad č. 3 - Použitie funkcie Instr

Vo vyššie uvedených príkladoch sme mali iba jedno meno a zľava a sprava sme priamo zadali, koľko znakov potrebujeme. Ale v prípade mnohých mien nie sú znaky krstného mena a priezviska rovnaké, líšia sa meno od mena. V tých prípadoch nemôžeme zadať počet znakov priamo, aby sme mohli použiť funkciu Instr.

Funkcia Instr vráti zadanú pozíciu znaku v reťazci. Napríklad si pozrite nasledujúci kód.

Kód:

Sub SubString_Example3 () Dim Pozícia ako pozícia reťazca = InStr (1, "Sachin", "a") MsgBox Pozícia Koniec Sub

InStr (1, „Sachin“, „a“), toto identifikuje polohu písmena „a“ ako prvého výskytu v reťazci „Sachin“. V tomto prípade je písmeno „a“ na druhej pozícii. Takže dostaneme 2 ako výsledok do okna správy.

Takto môžeme pomocou funkcie Instr nájsť znak medzery medzi menom a priezviskom.

Napríklad sa pozrite na nižšie uvedené meno, ktoré mám v hárku programu Excel.

Pomocou funkcií LEFT, RIGHT a Instr môžeme extrahovať podreťazce. Nižšie je uvedený kód na extrahovanie krstného mena.

Kód:

Sub FirstName () Dim K As Long Dim LR As Long LR = Cells (Rows.Count, 1). End (xIUp). Row For K = 2 To LR Cells (K, 2). Value = Left (Cells (K, 1) .Value, InStr (1, Cells (K, 1) .Value, "") - 1) Ďalej K End Sub

Spustite makro a v okne správy uvidíte prvé meno ako podreťazec.

Pomocou nižšie uvedeného kódu extrahujte priezvisko ako podreťazec.

Kód:

Sub LastName () Dim K As Long Dim LR As Long LR = Cells (Rows.Count, 1). End (xIUp). Row For K = 2 To LR Cells (K, 3). Value = Right (Cells (K, 1) .Value, Len (Cells (K, 1)) - InStr (1, Cells (K, 1) .Value, "")) Next K End Sub

Spustite makro a v okne správy sa nám zobrazí priezvisko.

Tlačidlo makro som priradil k pracovnému listu, stiahnem si zošit a použijem ich.

Zaujímavé články...