Stredná funkcia VBA - extrahuje znaky zo stredu reťazca

Tento tutoriál ukáže, ako používať funkciu Mid VBA na extrahovanie znakov zo stredu textového reťazca.

Stredná funkcia

Stredná funkcia Získajte n znakov

Funkcia VBA Mid vracia n znakov z reťazca začínajúceho od pozície m:

123456789 Sub MidExample_1 ()MsgBox Mid („ABCDEFGHI“, 4, 1) 'Výsledok je: „D“MsgBox Mid („ABCDEFGHI“, 4, 2) 'Výsledok je: „DE“MsgBox Mid („ABCDEFGHI“, 4, 50) 'Výsledok je: „DEFGHI“MsgBox Mid („ABCDEFG hI“, 6, 1) 'Výsledok je: „F“MsgBox Mid („ABCDEFG hI“, 6, 2) 'Výsledok je: „FG“MsgBox Mid („ABCDEFG hI“, 6, 4) 'Výsledok je: „FG h“Koniec pod

Stredná funkcia Získajte n znakov v premennej

Ako je uvedené vyššie, reťazec môžete definovať jednoducho zadaním textu do úvodzoviek. Funkcia MID však bude fungovať aj s reťazcovými premennými. Tieto príklady extrahujú n znakov z reťazca začínajúceho od pozície m.

12345678 Sub MidExample_2 ()Dim StrEx As String 'Definujte premennú reťazcaStrEx = "ABCDEFGHI"MsgBox Mid (StrEx, 2, 1) 'Výsledok je: "B"MsgBox Mid (StrEx, 2, 2) 'Výsledok je: "BC"MsgBox Mid (StrEx, 2, 50) 'Výsledok je: „BCDEFGHI“Koniec pod

Stredná funkcia Získajte n znakov z bunky

Reťazce je možné definovať v kóde VBA, ale môžete použiť aj hodnoty z buniek. Prečítajte si hodnotu bunky, uložte ju do reťazcovej premennej a extrahujte n znakov z hodnoty bunky pracovného hárka od polohy m.

1234567891011 Sub MidExample_3 ()Dim StrEx As String 'Definujte premennú reťazca„Prečítajte si hodnotu bunky A1 v pracovnom hárku List1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Range ("A1"). Value„V tomto prípade je hodnota bunky A1„ Nech je sila s tebou “MsgBox Mid (StrEx, 4, 6) 'Výsledok je: "F" (všimnite si medzeru na začiatku)MsgBox Mid (StrEx, 2, 8) 'Výsledok je: "ay F"MsgBox Mid (StrEx, 3, 4) 'Výsledok je: „y th“Koniec pod

Stredná funkcia Nahradiť n znakov

Vo vyššie uvedených príkladoch funkcia Mid nezmenila pôvodný reťazec. Vrátila časť z neho, pričom pôvodný reťazec zostal nedotknutý. Strednú funkciu je možné použiť na nahradenie znakov v reťazci.

12345678910111213141516171819202122 Sub MidExample_4 ()Dim StrEx As String 'Definujte premennú reťazcaSub MidExample_4 ()Dim StrEx As String 'Definujte premennú reťazcaStrEx = „Nech je sila s vami“Stred (StrEx, 5, 1) = "VWXYZ"Výsledok MsgBox StrEx je: „Nech je Vhe Horce s vami“„Stredná funkcia našla pozíciu 5 a nahradila 1 znak v pôvodnom reťazciStrEx = „Nech je sila s vami“Stred (StrEx, 5, 3) = "VWXYZ"Výsledok MsgBox StrEx je: „Nech je s vami VWX Horce“„Stredná funkcia našla pozíciu 5 a nahradila 3 znaky v pôvodnom reťazciStrEx = „Nech je sila s vami“Stred (StrEx, 5, 8) = "VWXYZ"Výsledok MsgBox StrEx je: „Nech je s vami VWXYZorce“„Stredná funkcia našla pozíciu 5 a pokúsila sa nahradiť 8 znakov.„VWXYZ“ má iba 5 znakov, takže bolo nahradených iba 5 znakov.Koniec pod

Extrahovanie strednej funkcie druhého slova z frázy

Na získanie druhého slova v texte môžeme použiť funkciu VBA Mid s funkciou VBA Instr.

Funkcia VBA InStr môže vrátiť pozíciu znaku v texte.

1 InStr („Dve slová“, „“) „Výsledok je 4

Na nájdenie prvého priestoru môžeme použiť InStr, potom môžeme znova použiť InStr, ktorý začne hľadať za prvým priestorom, aby našiel druhý priestor v texte. Nakoniec môžeme na extrakciu slova použiť funkciu Mid, pretože poznáme počiatočnú pozíciu druhého slova a jeho dĺžku (rozdiel medzi dvoma polohami medzier).

12345678910111213141516171819202122232425 Sub MidExample_5 ()Dim StrEx As String 'Definujte premennú reťazcaDim StartPos ako celé čísloDim EndPos ako celé čísloDim SecondWord ako reťazecStrEx = "James Earl Jones je herec"StartPos = InStr (StrEx, "")"Výsledok je 6„Nájdite polohu prvého priestoruEndPos = InStr (StartPos + 1, StrEx, "")"Výsledok je 11„Nájdite polohu druhého priestoru začatím hľadania za prvým priestoromDruhé slovo = stred (StrEx, StartPos + 1, EndPos - StartPos - 1)„Stred extrahuje znaky začínajúce za prvou medzerou (StartPos +1)„Mid používa aj dĺžku druhého slova.„To je rozdiel medzi polohami medzier -1MsgBox SecondWord„Výsledkom je EarlKoniec pod
wave wave wave wave wave