Excel VBA SubString
Excel VBA SubString je velmi užitečný typ funkce ve VBA, která slouží k rozřezání dat ve formě řetězce. Ve funkcích pracovního listu však máme tři podřetězcové funkce, kterými jsou funkce Left-right a mid, zatímco ve VBA máme jako podřetězcové funkce Left-right mid a split. Jak sám název napovídá, funkce podřetězce ve VBA rozděluje řetězec na více podřetězců. Také jak bylo vysvětleno výše, ve VBA existuje více funkcí VBA Substring. V tomto článku se naučíme používat tyto podřetězcové funkce samostatně s příklady. Než přejdeme k příkladům, naučíme se nejprve syntaxi těchto funkcí a jaký argument tyto funkce přijímají jako vstup.
Syntaxe podřetězců Excel VBA
Následují různé syntaxe:
Sledujte naše ukázkové kurzy a videa
Vyhodnocení, Hadoop, Excel, mobilní aplikace, vývoj webových aplikací & mnoho dalších.
Syntaxe funkce Left SubString:
Textový řetězec je řetězec, který zadáváme jako vstup, zatímco délka je počet znaků, které chceme ze vstupního řetězce.
Příklad:
Levý („ANAND“,2)
Syntaxe funkce Pravý podřetězec:
Textový řetězec je řetězec, který zadáváme jako vstup, zatímco délka je počet znaků, které chceme ze vstupního řetězce.
Příklad: Pokud máme řetězec jako ANAND a použijeme stejný kód jako výše, výsledek bude
Pravda („ANAND“,2)
Takto dostaneme jako výsledek ND.
Syntaxe funkce Mid SubString ve VBA:
Textový řetězec je řetězec, který poskytujeme jako vstup, a Start pozice je pozice, kde chceme, aby začal znak pro extrakci, zatímco délka je počet znaků, které chceme ze vstupního řetězce.
Příklad:
MID („COMPUTER“,4,3)
Syntaxe funkce Split SubString:
- Výraz jako řetězec: Jedná se o povinný argument funkce SPLIT. Je to v podstatě vstupní řetězec, který poskytujeme.
- Oddělovač: Toto je nepovinný argument. Je to konkrétní oddělovač, který rozděluje řetězec, ale ve výchozím nastavení je za výchozí oddělovač považována mezera.
- Limit: Toto je také nepovinný argument. Limit znamená maximální počet částí, které chceme z řetězce udělat. Pokud však funkci limit nezadáme, VBA jej opět považuje za výchozí -1. Z toho vyplývá, že řetězec bude rozdělen pokaždé, když se v něm bude nacházet oddělovač.
- Porovnat: Tento poslední argument je rovněž nepovinným argumentem. Compare je metoda porovnání, která je jednou ze dvou níže uvedených:
- Buď je to 0, což znamená, že SPLIT provede binární porovnání, což znamená, že každý znak by se měl shodovat.
- Nebo to může být 1, což znamená, že funkce SPLIT provede textové porovnání.
Funkce SPLIT je nejzáludnější a nejužitečnější ze všech výše uvedených funkcí pro porovnávání podřetězců. Všechny tři ostatní podřetězcové funkce používají jako vstup jeden řetězec, zatímco funkce Split používá pole řetězců.
Příklad když napíšu Split(„JSEM DOBRÝ CHLAPEC“), rozdělí řetězec jako samostatný (každé slovo jako samostatné). Nyní tyto podřetězcové funkce použijeme v příkladech.
Jak používat podřetězcové funkce ve VBA?
Naučíme se používat funkci SubString v Excelu pomocí kódu VBA.
Příklad č. 1
Funkce levého podřetězce ve VBA. Použijme první podřetězcovou funkci ve VBA. Za tímto účelem postupujte podle následujících kroků:
Krok 1: Přejděte na kartu vývojáře a kliknutím na Visual Basic otevřete editor VB.
Krok 2: Vložte nový modul uvnitř editoru Visual Basic (VBE). Klepněte na záložku Insert > a vyberte Module.
Krok 3: Deklarovat podfunkci a začít psát kód.
Kód:
Sub Sample()End Sub
Krok 4: Deklarujte dva řetězce, jeden pro příjem vstupu od uživatele a druhý pro uložení hodnoty výsledku.
Kód:
Sub Sample()Dim A, B As StringEnd Sub
Krok 5: Přijměte vstup od uživatele pro vstupní řetězec pomocí funkce input box.
Kód:
Sub Sample()Dim A, B As StringA = InputBox("Enter a String", "Single String")End Sub
Krok 6: Do proměnné B uložte hodnotu z levé funkce až na třetí místo.
Kód:
Sub Sample()Dim A, B As StringA = InputBox("Enter a String", "Single String")B = Left(A, 3)End Sub
Krok 7: Pomocí funkce Msgbox zobrazte konečný výsledek.
Kód:
Sub Sample()Dim A, B As StringA = InputBox("Enter a String", "Single String")B = Left(A, 3)MsgBox BEnd Sub
Krok 8: Nyní spusťte výše uvedený kód stisknutím klávesy F5. a vstupní řetězec zapište jako ANAND.
Krok 9: Po stisknutí tlačítka OK vidíme výsledek funkce levého podřetězce.
ANA jsou tři znaky zleva řetězce.
Příklad č. 2
Funkce pravého podřetězce ve VBA. Za tímto účelem postupujte podle následujících kroků:
Krok 1: Ve stejném modulu deklarujte další podfunkci, abyste mohli začít psát kód pro funkci pravý podřetězec.
Kód:
Sub Rightsub()End Sub
Krok 2: Deklarujte dvě proměnné A a B jako řetězec.
Kód:
Sub Rightsub()Dim A, B As StringEnd Sub
Krok 3: Přijměte vstup od uživatele a uložte jeho hodnotu do proměnné A.
Kód:
Sub Rightsub()Dim A, B As StringA = InputBox("Enter a String", "Single String")End Sub
Krok 4: Použijte funkci Right na řetězec na třetím místě a uložte hodnotu do proměnné B.
Kód:
Sub Rightsub()Dim A, B As StringA = InputBox("Enter a String", "Single String")B = Right(A, 3)End Sub
Krok 5: Pomocí funkce Msgbox zobrazte hodnotu proměnné B.
Kód:
Sub Rightsub()Dim A, B As StringA = InputBox("Enter a String", "Single String")B = Right(A, 3)MsgBox BEnd Sub
Krok 6: Spusťte kód a zadejte vstupní řetězec jako „MATKA“.
Krok 7: Stiskněte tlačítko OK, abyste viděli výsledek.
HER jsou tři znaky z pravé strany řetězce.
Příklad č. 3
Funkce Mid Substring ve VBA. Postupujte přitom podle následujících kroků:
Krok 1: Ve stejném modulu deklarujte další podfunkci a začněte psát kód funkce Mid.
Kód:
Sub MIDsub()End Sub
Krok 2: Deklarujte dvě proměnné A a B jako String.
Kód:
Sub MIDsub()Dim A, B As StringEnd Sub
Krok 3: Přijměte vstup od uživatele a uložte hodnotu do proměnné A.
Kód:
Sub MIDsub()Dim A, B As StringA = InputBox("Enter a String", "Single String")End Sub
Krok 4: Pomocí funkce Mid s počáteční pozicí 4 a délkou 3 uloží hodnotu do proměnné B a zobrazí ji pomocí funkce Msgbox.
Kód:
Sub MIDsub()Dim A, B As StringA = InputBox("Enter a String", "Single String")B = Mid(A, 4, 3)MsgBox BEnd Sub
Krok 5: Spusťte výše uvedený kód a jako vstup zadejte COMPUTER.
Krok 6: Stiskněte OK a zobrazte konečný výsledek.
Podřetězec PUT začíná od 4. pozice a úspěšně jsme extrahovali tři znaky.
Příklad č. 4
Funkce VBA Split SubString. Postupujte přitom podle následujících kroků:
Krok 1: Ve stejném modulu deklarujte podfunkci a začněte psát kód pro podfunkci.
Kód:
Sub SplitSub()End Sub
Krok 2: Deklarujte dvě proměnné A jako řetězec a B jako pole řetězců a přijměte vstupní řetězec od uživatele a uložte jej do proměnné A.
Kód:
Sub SplitSub()Dim A As StringDim B() As StringA = InputBox("Enter a String", "Separate with Commas")End Sub
Krok 3: Použijte funkci Split SubString a uložte jeho hodnotu do proměnné B.
Kód:
Sub SplitSub()Dim A As StringDim B() As StringA = InputBox("Enter a String", "Separate with Commas")B = Split(A, ",")End Sub
Krok 4: Pomocí smyčky For zobrazte každý Podřetězec na jednom řádku.
Kód:
Sub SplitSub()Dim A As StringDim B() As StringA = InputBox("Enter a String", "Separate with Commas")B = Split(A, ",")For i = LBound(B) To UBound(B)strg = strg & vbNewLine & "String Number " & i & " - " & B(i)Next iMsgBox strgEnd Sub
Krok 5 Spusťte výše uvedený kód a jako vstup zadejte I,AM,GOOD,BOY.
Krok 6: Stiskněte tlačítko OK, abyste viděli výsledek.
Ve výše uvedeném příkladu jsme jako oddělovač použili „,“.
Závěr
Stejně jako funkce podřetězce v pracovním listu má i VBA funkce podřetězce. Jsou to funkce Left Right Mid a Split. V podstatě funkce Substring rozdělují řetězec nebo pole řetězců na více podřetězců. Pokud chceme podřetězec z levé části řetězce, použijeme funkci Left nebo v opačném případě Right. Pokud chceme prostřední znak libovolného řetězce, použijeme funkce MID. Také pokud máme pole řetězců, použijeme funkce split.
Je několik věcí, které si musíme zapamatovat o funkcích Substring ve VBA:
- Je to podobné jako funkce Substring v pracovním listu.
- Funkce Substring rozdělí daný řetězec na podřetězce.
- Pokud máme pole řetězců, použijeme funkci Split.
- Pouze vstupní řetězec ve funkci Split je povinný, zatímco ostatní jsou nepovinné.
Doporučené články
Toto je průvodce funkcí VBA SubString. Probíráme zde použití funkce SubString v Excelu VBA spolu s praktickými příklady a šablonou Excelu ke stažení. Můžete si také projít naše další navrhované články –
- VBA SendKeys
- VBA On Error Goto
- VBA Input
- VBA LBound
.