Funkce rozdělení VBA (příklady) - Jak rozdělit řetězce v aplikaci Excel VBA?

Co je funkce rozdělení VBA v aplikaci Excel?

Funkce Split ve VBA je velmi užitečná funkce řetězce, která se používá k rozdělení řetězců na více podřetězců na základě oddělovače poskytovaného funkci a metody porovnání, existují i ​​jiné funkce řetězce, které převádějí řetězec na podřetězec, ale funkce split může rozdělit řetězec do více než jednoho podřetězce.

V normálním listu se funkce LEFT, MID a RIGHT v aplikaci Excel používají jako textové funkce v aplikaci Excel k extrahování části věty. Například extrakce křestního jména, středního jména a příjmení jsou běžné scénáře, které jsme viděli. Ale ve VBA máme univerzálnější funkci nazvanou SPLIT, která za vás udělá podobnou práci. SPLIT je vestavěná funkce v aplikaci Excel VBA, která může rozdělit zadanou větu na základě oddělovače. Například pokud chcete rozdělit e-mailovou adresu na různé části, je společným prvkem v e-mailové adrese „@“ ve všech ID e-mailu, takže „@“ se zde stane oddělovačem.

Funkce rozdělení řetězce VBA

Stejně jako všechny ostatní funkce má i split svou vlastní syntaxi. Níže jsou uvedeny parametry funkce Excel VBA Split string.

  • Hodnota nebo výraz: Toto není nic jiného než skutečná hodnota, kterou se snažíme rozdělit. Například pokud chcete rozdělit křestní jméno a příjmení, zde je hodnota celé jméno.
  • (Oddělovač): Jaký je běžný prvek k rozdělení hodnoty nebo výrazu? V e-mailu je ID „@“ společným prvkem, v adrese je běžným prvkem čárka (,). Pokud to ignorujete, považuje se mezera za výchozí hodnotu.
  • (Limit): Kolik podřetězců chcete z hodnoty nebo výrazu, které jste zadali. Pokud je například hodnota „Jmenuji se Excel“, zadáte-li jako limit 3, zobrazí se výsledek ve třech řádcích jako „Můj“, „název“, „je Excel“.
  • (Porovnat): Protože nepoužíváme argument porovnání, přeskočte tento volitelný argument.

V dalších částech článku uvidíme, jak prakticky využít funkci SPLIT v Excelu VBA.

Příklady funkce VBA Split String

Níže jsou uvedeny praktické příklady funkce Split v aplikaci Excel VBA.

Příklad č. 1 - Rozdělte větu

Split vrátí výsledek v poli, které bude začínat od 0. Všechna pole jsou začínající od 0, ne od 1.

Předpokládejme, že v buňce A1 máte slovo „My Name is Excel VBA“.

Nyní chcete tuto větu rozdělit na části jako „Moje“, „Jméno“, „je“, „Excel“, „VBA“. Pomocí funkce Excel VBA SPLIT String můžeme tento výsledek vrátit.

Krok 1: Spusťte makro s názvem.

Kód:

Sub Split_Example1 () End Sub Krok 2: Deklarujte tři proměnné.

Kód:

Sub Split_Example1 () Dim MyText jako řetězec Dim i As Integer Dim MyResult () jako řetězec End Sub

Krok 3: Nyní pro definovanou proměnnou My Text přiřadí slovo „My Name is Excel VBA“ .

Kód:

Sub Split_Example1 () Dim MyText jako řetězec Dim i As Integer Dim MyResult () jako řetězec MyText = "Jmenuji se Excel VBA" End Sub

Krok 4: Nyní pro proměnnou Můj výsledek použijte funkci rozdělení řetězce VBA.

Kód:

Sub Split_Example1 () Dim MyText jako řetězec Dim i As Integer Dim MyResult () jako řetězec MyText = "Jmenuji se Excel VBA" MyResult = Split (End Sub

Krok 5: Výraz je naše textová hodnota. Protože jsme již přiřadili naši textovou hodnotu proměnné Můj text, zadejte tento argument zde.

Kód:

Sub Split_Example1 () Dim MyText jako řetězec Dim i As Integer Dim MyResult () jako řetězec MyText = "Jmenuji se Excel VBA" MyResult = Split (MyText) End Sub

Poznámka: Stejně jako nyní ignorujte všechny ostatní parametry.

Krok 6: Takže můj výsledek nyní drží tento rozdělený výsledek. Jak jsem řekl dříve v příspěvku, rozdělená funkce ukládá výsledek jako pole, takže zde

  • Můj výsledek (0) = „Můj“
  • Můj výsledek (1) = „Jméno“
  • Můj výsledek (2) = „je“
  • Můj výsledek (3) = „Excel“
  • Můj výsledek (4) = „VBA“

I když tento kód nemá žádný vliv na spuštění funkce SPLIT, můžeme tento kód použít.

Příklad č. 2 - Řetězec VBA SPLIT s funkcí UBOUND

Abychom mohli uložit výsledek funkce SPLIT, můžeme použít funkci vba UBOUND spolu s funkcí SPLIT.

UBOUND vrátí maximální délku pole. Ve výše uvedeném příkladu byla maximální délka pole 5.

Stejné slovo „Jmenuji se Excel VBA“. Rozdělme toto slovo a uložme od buňky A1 dále.

Step 1: Let’s continue from where we left off in the previous example.

Step 2: Now apply FOR NEXT LOOP in VBA from 0 to maximum length of the array i.e. UBOUND.

The reason we started from zero because SPLIT will store the result from zero, not from 1.

Step 3: Now apply VBA CELLS property and store the result.

Code:

Cells(i + 1, 1).Value = MyResult(i)

Step 4: Run this code, we would have split values.

Complete Code:

Sub Split_Example1() Dim MyText As String Dim i As Integer Dim MyResult() As String MyText = "My Name is Excel VBA" MyResult = Split(MyText) For i = 0 To UBound(MyResult) Cells(i + 1, 1).Value = MyResult(i) Next i End Sub

Return Word Count

We can also show the total number of words in the supplied value. Use the below code to show the total number of word counts. Code:

Sub Split_Example2() Dim MyText As String Dim i As Integer Dim MyResult() As String MyText = "My Name is Excel VBA" MyResult = Split(MyText) i = UBound(MyResult()) + 1 MsgBox "Total Words Count is " & i End Sub

Copy and paste the above VBA code and run it, the message box will return the result.

Things to Remember

  • If the delimiter is not supplied SPLIT automatically thinks the delimiter as space.
  • If you want to split except space then you need to specify the delimiter in double-quotes.
  • SPLIT stores the result as array results.
  • UBOUND function returns the maximum length of the array.

Recommended Articles

Toto byl průvodce funkcí rozdělení VBA. Zde jsme se naučili, jak používat funkci rozdělení řetězce VBA v aplikaci Excel spolu s několika praktickými příklady a šablonou aplikace Excel ke stažení. Níže uvádíme několik užitečných článků aplikace Excel souvisejících s VBA -

  • Jak povolit RegEx ve VBA?
  • Funkce StrComp v aplikaci Excel VBA
  • Objekt sešitu VBA
  • Funkce spánku VBA v aplikaci Excel
  • Vytvořte kontingenční tabulku v aplikaci Excel VBA
  • Dělejte do smyčky ve VBA
  • Vyberte buňku ve VBA
  • Funkce listu ve VBA
  • Index mimo rozsah

Zajímavé články...