Rozdělit řetězec VBA do pole | Jak rozdělit řetězec do pole v aplikaci Excel VBA?

Excel VBA Split String do Array

Řetězec je kolekce znaků spojených dohromady, když jsou tyto znaky rozděleny a uloženy v proměnné, pak se tato proměnná stane maticí pro tyto znaky a metodou, kterou používáme k rozdělení řetězce, aby se vytvořilo pole, je použití funkce SPLIT v vba, která rozděluje řetězec na jednorozměrný řetězec.

Stejně jako pracovní listy ve VBA máme i funkce pro práci s hodnotami String nebo Text. Jsme velmi dobře obeznámeni s řetězcovými operacemi, jako je extrahování prvního jména, příjmení, středního jména atd. Ale co takhle myšlenka rozdělení hodnoty řetězce na pole ve VBA? Ano, slyšeli jste správně, že můžeme rozdělit větu řetězce na pole pomocí kódování VBA a v tomto speciálním článku vám ukážeme, jak rozdělit řetězec na pole v aplikaci Excel VBA.

Co je Split String do pole?

Nejprve to objasním, „řetězec do pole“ není nic jiného než „různé části věty nebo řetězce budou rozděleny na více částí“. Například pokud je věta „Bangalore je hlavní město Karnataka“, pak každé slovo má jiné pole.

Jak rozdělit tuto větu do pole je tématem tohoto článku.

Jak převést rozdělené řetězce na pole v aplikaci Excel VBA?

Chcete-li převést rozdělený řetězec na pole ve VBA, máme funkci nazvanou „SPLIT“. Toto je funkce VBA, která provádí úkol rozdělit dodanou hodnotu řetězce na různé části na základě poskytnutého oddělovače.

Například pokud je věta „Bangalore je hlavní město Karnataka“, je prostor oddělovačem mezi každým slovem.

Níže je uvedena syntaxe funkce SPLIT.

  • Hodnota nebo výraz: Toto je textová hodnota řetězce nebo textu, kterou se pokoušíme převést na pole oddělením každé části řetězce.
  • [Oddělovač]: Toto není nic jiného než běžné věci, které oddělují každé slovo v řetězci. V naší větě „Bangalore je hlavní město Karnataka“ každé slovo oddělené mezerou, takže náš oddělovač je zde prostor.
  • [Limit]: Limit není nic jiného než kolik částí chceme ve výsledku. Například ve větě „Bangalore je hlavní město Karnataka“ máme sedm částí, pokud budeme potřebovat pouze tři části, první část dostaneme jako „Bangalore“, druhou část jako „je“ a třetí část jako zbytek věta tj. „hlavní město Karnataka“.
  • [Porovnat]: Toto se nepoužívá 99% času, takže se toho v tuto chvíli nedotýkejte.
Zde si můžete tento VBA Split String do šablony Array Excel stáhnout zde - VBA Split String into Array Excel Template

Příklad č. 1

Dobře, podívejme se nyní na praktické příklady.

Krok 1: Definujte proměnnou VBA pro uchování hodnoty řetězce.

Kód:

 Sub String_To_Array () Dim StringValue jako řetězec End Sub 

Krok 2: K této proměnné přiřaďte řetězec „Bangalore je hlavní město Karnataka“.

Kód:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore je hlavní město Karnatky" End Sub 

Krok 3: Dále definujte jednu další proměnnou, která může obsahovat každou část výše uvedené hodnoty řetězce. Na toto si musíme pamatovat, protože věta obsahuje více než jedno slovo. Abychom udrželi více než jednu hodnotu, musíme proměnnou definovat jako „Array“.

V tomto případě máme v řetězci 7 slov, takže definujte pole následujícím způsobem.

Kód:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore je hlavní město Karnatky" Dim SingleValue () jako String End Sub 

Nyní pro tuto proměnnou pole použijeme funkci SPLIT k rozdělení řetězce na pole v aplikaci Excel VBA.

Kód:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore je hlavní město Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub 

Výraz je naše hodnota řetězce, tj. Proměnná již obsahuje hodnotu řetězce, takže zadejte pouze název proměnné.

Oddělovač v tomto řetězci je znak mezery, takže zadejte stejný.

Kód:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore je hlavní město Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub 

Od této chvíle nechte ostatní části funkce SPLIT.

Funkce SPLIT rozděluje hodnotu řetězce na 7 částí, přičemž každé slovo je odděleno na úkor znaku mezery. Protože jsme proměnnou „SingleValue“ deklarovali jako pole, můžeme této proměnné přiřadit všech 7 hodnot.

Můžeme napsat kód následovně.

Kód:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore je hlavní město Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub 

Spusťte kód a podívejte se, co dostaneme do pole se zprávou.

Od této chvíle vidíme první slovo, tj. „Bangalore“, které ukazuje další slova, můžeme napsat kód následujícím způsobem.

Kód:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore je hlavní město Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewue (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub 

Nyní spusťte kód a podívejte se, co dostaneme do okna se zprávou.

Každé slovo bylo rozděleno do polí.

Příklad č. 2

Nyní si představte situaci ukládání těchto hodnot do buněk, tj. Každé slovo do samostatné buňky. K tomu musíme do VBA zahrnout smyčku FOR NEXT.

Níže uvedený kód vloží každé slovo do samostatných buněk.

 Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore je hlavní město Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k As Integer Pro k = 1 až 7 buněk (1, k) .Value = SingleValue (k - 1) Další k Konec Sub 

Tím se vloží každé slovo, jak je znázorněno na následujícím obrázku.

Věci k zapamatování

  • Pole a smyčky se používají společně, aby byl kód dynamický.
  • Funkce SPLIT vyžaduje společný oddělovač, který odděluje každé slovo ve větě.
  • Délka pole začíná od nuly, ne od 1.