VBA Split String in Array

Excel VBA Split String in Array

Een string is een verzameling karakters die met elkaar zijn verbonden, wanneer deze karakters worden verdeeld en opgeslagen in een variabele, dan wordt die variabele een array voor deze karakters en de methode die we gebruiken om een ​​string te splitsen om er een array van te maken is door de SPLIT-functie te gebruiken in vba die de string splitst in een eendimensionale string.

Net als werkbladen in VBA hebben we ook functies om met tekenreeks- of tekstwaarden om te gaan. We zijn zeer bekend met de string-operaties zoals het extraheren van de firs-naam, achternaam, middelste naam, enz. Maar hoe zit het met het idee om string-waarde op te splitsen in arrays in VBA? Ja, je hebt het goed gehoord, we kunnen een stringzin in een array splitsen met behulp van VBA-codering en in dit speciale artikel laten we je zien hoe je de string in een array kunt splitsen in Excel VBA.

Wat is een gesplitste string in een array?

Laat me dit eerst verduidelijken: "String into Array" is niets anders dan "verschillende delen van de zin of string worden opgesplitst in meerdere delen". Als de zin bijvoorbeeld 'Bangalore is de hoofdstad van Karnataka' is, is elk woord een andere matrix.

Dus, hoe deze zin in de array te splitsen, is het onderwerp van dit artikel.

Hoe een gesplitste string in een array in Excel VBA te converteren?

Om de gesplitste string om te zetten in een array in VBA hebben we een functie genaamd "SPLIT". Dit is een VBA-functie die de taak uitvoert om de geleverde tekenreekswaarde te splitsen in verschillende delen op basis van het opgegeven scheidingsteken.

Als de zin bijvoorbeeld 'Bangalore is de hoofdstad van Karnataka' is, is de spatie het scheidingsteken tussen elk woord.

Hieronder staat de syntaxis van de SPLIT-functie.

  • Waarde of uitdrukking: dit is de tekenreeks of tekstwaarde die we naar de matrix proberen te converteren door elk deel van de tekenreeks te scheiden.
  • [Delimiter]: dit zijn niets anders dan de gewone dingen die elk woord in de string scheiden. In onze zin "Bangalore is de hoofdstad van Karnataka" wordt elk woord gescheiden door een spatie, dus ons scheidingsteken is hier de spatie.
  • [Limit]: Limiet is niets anders dan hoeveel onderdelen we als resultaat willen hebben. Voor een voorbeeld in de zin "Bangalore is de hoofdstad van Karnataka" hebben we zeven delen als we maar drie delen nodig hebben, dan krijgen we het eerste deel als "Bangalore", het tweede deel als "is" en het derde deel als rest van de zin dwz "de hoofdstad van Karnataka".
  • [Vergelijk]: dit wordt 99% van de tijd niet gebruikt, dus laten we dit op dit moment niet aanraken.
U kunt deze VBA Split String in Array Excel-sjabloon hier downloaden - VBA Split String in Array Excel-sjabloon

Voorbeeld 1

Oké, laten we nu eens kijken naar praktische voorbeelden.

Stap 1: Definieer de VBA-variabele om de tekenreekswaarde vast te houden.

Code:

 Sub String_To_Array () Dim StringValue As String End Sub 

Stap 2: Wijs voor deze variabele de string toe "Bangalore is de hoofdstad van Karnataka".

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore is de hoofdstad van Karnatka" End Sub 

Stap 3: Definieer vervolgens nog een variabele die elk deel van de bovenstaande tekenreekswaarde kan bevatten. Hierop moeten we in gedachten houden dat aangezien de zin meer dan één woord heeft, we de variabele moeten definiëren als "Array" om meer dan één waarde te bevatten.

In dit geval hebben we 7 woorden in de string, dus definieer de array als volgt.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore is de hoofdstad van Karnatka" Dim SingleValue () As String End Sub 

Voor deze arrayvariabele gebruiken we nu de SPLIT-functie om de string in een array in Excel VBA te splitsen.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore is de hoofdstad van Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub 

De uitdrukking is onze stringwaarde, dwz variabele bevat de stringwaarde al, dus voer alleen de variabelenaam in.

Het scheidingsteken in deze string is een spatie, dus geef hetzelfde op.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore is de hoofdstad van Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub 

Verlaat vanaf nu andere delen van de SPLIT-functie.

SPLIT-functie splitst de tekenreekswaarde in 7 stukken waarbij elk woord wordt gescheiden ten koste van de spatie. Omdat we de variabele “SingleValue” als array hebben gedeclareerd , kunnen we alle 7 waarden aan deze variabele toewijzen.

We kunnen de code als volgt schrijven.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore is de hoofdstad van Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub 

Voer de code uit en kijk wat we in het berichtvenster krijgen.

Vanaf nu kunnen we het eerste woord zien, dwz "Bangalore" om meer woorden te tonen, we kunnen de code als volgt schrijven.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore is de hoofdstad van Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine & SingleValue (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub 

Voer nu de code uit en kijk wat we in het berichtvenster krijgen.

Elk woord is opgesplitst in arrays.

Voorbeeld # 2

Stel je nu een situatie voor waarin deze waarden in cellen worden opgeslagen, dwz elk woord in een aparte cel. Hiervoor moeten we de FOR NEXT-lus in VBA opnemen.

De onderstaande code voegt elk woord in afzonderlijke cellen in.

 Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore is de hoofdstad van Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k As Integer For k = 1 to 7 Cells (1, k) .Value = SingleValue (k - 1) Volgende k End Sub 

Hierdoor wordt elk woord ingevoegd zoals weergegeven in de onderstaande afbeelding.

Dingen om te onthouden

  • Array en loops worden samen gebruikt om de code dynamisch te maken.
  • De SPLIT-functie vereist een gemeenschappelijk scheidingsteken dat elk woord in de zin scheidt.
  • De array-lengte begint bij nul, niet bij 1.